一般的なエラーの多くを排除しようとしましたが、
cronのPATHが利用可能であることを確認する
crontabファイルの最後にエンドラインがあります
タイムゾーンは次によって設定されます:
cd /etc cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
date
bashで実行すると、次のようになります。
Tue Sep 17 15:14:30 SGT 2013
cronが同じ時間を使用しているかどうかを確認するには、
* * * * * date >> date.txt
date.txtに同じ日付を出力しています。
これは私が実行しようとしているスクリプトです:
event.sh
:
#!/usr/bin/env bash
echo data > /root/data.txt
を使用するcrontab -e
と、以下の行が機能します。
* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
ただし、他の引数を試してみると、午後2時50分に実行されることを期待しています。
50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1
または
50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)
動作しなくなります。私の時間引数に問題があるようです。/tmp/debug.log
ファイルにも何も見つかりませんでした。
解決:
TZに変更を加えた後、cronサービスを再起動する必要があることがわかりました。
* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
* * * * * date
をdate
示していることを確認してください。crontab内からTZ環境変数を設定しても、cronデーモン自体が使用するタイムゾーンには影響しない可能性がありますが、cronを介して起動されるプロセスには影響するため、crontabでTZを設定する場合は一時的にコメントアウトすることをお勧めします代わりにシステムクロックのタイムゾーン(Linuxをシングルブートしている場合はUTCである可能性がありますが、ローカル時間である可能性があります)を使用して時間を設定します。
~/event.sh
試してください/home/username/event.sh