(119) cronは bashrcを無視する…

投稿者: | 2020年6月10日

1. 問題発生

crontab で指定したスクリプトが失敗する!

でも…
コマンドライン上でそのスクリプトを実行すると正常に処理が完了する。

原因は…
cronによるスクリプト実行時に環境変数の設定が効いていなくてパスが通っていないようだ。

それらの環境変数は .bashrc もしくは .bash_profile に書いてある。

2. 解決策

その1 : スクリプトの先頭で読み込んでしまう。

source ~/.bashrc
 :
source ~/.bash_profile
 :

ただし…
.bashrcのメンテナンス性が悪化する。

その2 : .bashrcと同じことをスクリプト内に書く。

緊急時はそれでも仕方がないが、やっつけ仕事ならやめよう。

その3 : 別の設定ファイルを用意する。

cronで起動するスクリプト専用の設定ファイルを用意し、これを先に読み込む。

これが丁寧で良い策かも。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です