4時間ごとにcronを実行するための正しい構文は何ですか?

4時間ごとにcronを実行するための正しい構文は何ですか?

次の構文(正しいと思います)を使用していますが、コマンドが 1 分ごとに実行されます。

* */4 * * * /cmd.sh

答え1

0 0,4,8,12,16,20 * * * /cmd.sh

おそらく、私はこのようにするでしょう。これにより、ジョブは 4 時間ごとに、00:00、04:00、08:00、12:00、16:00、20:00 の時刻に実行されます。

これは */4 を少しだけ冗長に書いたものですが、同じように動作するはずです。

答え2

編集前の元の投稿では、構成は次のように示されていました。

  • */4 * * * /cmd.sh

投稿者は Markdown に慣れておらず、最初の列にアスタリスクを入れたため、箇条書きとして表示されてしまいました。投稿者が投稿しようとしていた内容を反映するように、私は投稿を編集しました。

* */4 * * * /cmd.sh

この構成では、投稿者が観察した動作が得られます。ジョブは、4 で割り切れる時間の間、1 分ごとに 1 回実行されます。

1 分間に 1 回実行されないようにするには、次のように最初の列に数字が必要です。

15 * * * * whatever...

それは毎時15分に実行されます。

これらすべてをまとめると、4 で割り切れる時間に 1 時間に 1 回実行するには、次の構文を使用します。

15 */4 * * * whatever...

答え3

crontab -eを実行して次のエントリを追加します

0 */4 * * * スクリプトへのパス

これにより、スクリプトは 4 時間ごとに実行されます。

答え4

問題は最初の列の*です

' * */2 * * * /スクリプトへのパス'

これは、1時間ごとに1分ごとに実行されることを意味しますが、2時間ごとにのみ実行されます。

関連情報