質問
午前1時32分に実行したいスクリプトがあり、cronjobを設定しました。
$ crontab -e
私が持っている編集ファイルには
32 1 * * * /home/user/.scripts/midnightjobs
ここで、「user」は私のユーザー名です。しかし、これはうまくいきませんでした。
私が試したこと
何が間違っているかを確認するために、スクリプトにロギング機能を追加してみました。スクリプトが実行されていないようです。
また、午前7時59分に別のcronjobを追加してみました。
0 8 * * * /home/user/.scripts/midnightjobs
効果がある!スクリプトが実行され、午前8時にログファイルが出力されました。
私の考えでは
私は非常に注意を払ったと思います... 2番目の試みによると、私のラップトップ(archlinuxで実行)が夜にスリープ状態になり、cronjobを実行できないことが最善の推測です。
答え1
いくつかのアドバイス:
ログ(
cron
またはにある可能性があります)を確認して、スクリプトが実行されていることを確認してください。/var/log/syslog
/var/log/messages
スクリプトが実行可能であることを確認してください
手動で実行するときにスクリプトが正しく実行されていることを確認してください。
スクリプトを実行すると環境が異なる
cron
ため、パスなどが異なるため、スクリプトでエラーが発生する可能性があります。> /tmp/cron.output.log
行の末尾に追加すると、表示crontab
できるファイルにスクリプト出力が書き込まれます。ファイルが存在する場合、スクリプトが実行されます。
答え2
MAILTO=""
:をcrontabの先頭に置かない場合(PCが起動している場合)、スクリプトを実行するたびにuser@にメールを送信する必要があります。