回答:
crontab(/ etc / crontab)を使用せず、時間フィールドに* / 1を使用する理由。私はこれを使用して5分ごとにスクリプトを実行しましたが、うまくいきます:
# m h dom mon dow user command
* */1 * * * user command
cron.daily
マシンはすべての時間を実行していない場合にanacronはマシンがすべての夜にない場合は、プレーンのcronだけでそれらを実行しません一方、右のスケジュールを近似しようとするため、友人は、少し良く動作します。1時間ごとのジョブの場合、これはおそらくそれほど重要ではありません。
/etc/crontab
:cron.daily
、cron.weekly
およびcron.monthly
時間ごと(利用可能な場合)にanacronを実行しますけどrun-parts --report /etc/cron.hourly
。
のエントリcron.hourly
はrun-partsメカニズムによって実行されます(man run-parts
詳細はこちら)。そして、それrun-parts
が有効であるとみなすファイル名については気難しいです。
たとえば、スクリプトに拡張子を付けると、スクリプトが無効になり、ジョブが実行されなくなります。[a-zA-Z0-9_-]
有効な文字なので、「。」無効にします。
/etc/cron.hourly
(または.daily
、.weekly
など)にジョブを追加するときrun-parts
は、コマンドを発行して実際に実行されることを常に後でテストします。
run-parts --test /etc/cron.hourly
このコマンドを実行してファイルが表示された場合、それは機能したことを意味します。それ以外の場合、何も表示されない場合、ファイル名は無効です。
スクリプトの名前は何でしたか?
giving your script an extension will make it invalid and result in the job not being run
--report
スクリプトを実際に実行するために使用することもできます。
走るとき
crontab -l
このタスクはリストにありますか?
そうでない場合は、追加します
crontab -e
この行を追加
0 * * * * yourScript
このリストにある場合は、プログラミング言語のパスをスクリプトの先頭に追加してみてください
例:
bash: #!/bin/bash
この2つのことで常に問題が解決しました:)