質問

質問

質問

午前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

いくつかのアドバイス:

  1. ログ(cronまたはにある可能性があります)を確認して、スクリプトが実行されていることを確認してください。/var/log/syslog/var/log/messages

  2. スクリプトが実行可能であることを確認してください

  3. 手動で実行するときにスクリプトが正しく実行されていることを確認してください。

  4. スクリプトを実行すると環境が異なるcronため、パスなどが異なるため、スクリプトでエラーが発生する可能性があります。

  5. > /tmp/cron.output.log行の末尾に追加すると、表示crontabできるファイルにスクリプト出力が書き込まれます。ファイルが存在する場合、スクリプトが実行されます。

答え2

MAILTO="":をcrontabの先頭に置かない場合(PCが起動している場合)、スクリプトを実行するたびにuser@にメールを送信する必要があります。

関連情報