Lionを実行しているMacbookProにcrontabを設定したいと思います。私は通常のcrontab -e
を実行し、すべてが正常に機能しているかどうかを確認するための簡単なジョブを提供します---
*/10 * * * * wget -O - -q -t 1 http://site.local/cron.php
10分後、システムから「メール」が届きました。
/bin/sh: wget: command not found
コマンドラインからプログラムを実行できるので、wgetをインストールしました
このエラーを修正するにはどうすればよいですか?私のcrontabまたは.bash_profile
にはシバンが必要ですか?
これは、cronジョブとして実行する場合の環境の違いに関係している可能性があります(つまり、PATH
環境変数がbashターミナルから使用しているものとは異なります)。
Bashターミナルで、which
を使用して、使用されているwget
を特定します。
laptop [ ~ ]: which wget
/opt/local/bin/wget
次に、cronジョブでフルパスを使用します。
*/10 * * * * /opt/local/bin/wget -O - -q -t 1 http://site.local/cron.php
Cronジョブの場合、通常、コマンドをcrontabで直接指定する代わりに、bashスクリプトを実行します。デバッグが少し簡単になり、crontabが少しきれいに保たれます。
特定のコマンドがどこにあるかを見つけるには、次のことを試してください。
which wget
または
which <certain-command>
出力は、実行可能ファイルのパスを提供する必要があります。例えば:
linux-dgr7:~ # Sudo which wget
/usr/bin/wget
次に、次のようにエントリを変更します。
*/10 * * * * /usr/bin/wget -O - -q -t 1 http://site.local/cron.php
それを行ってもwgetが表示されない場合は、場所をPATH変数に追加する必要があります。
PATH=$PATH:/where/ever/path/is
または
PATH=$PATH:/opt/wget