web-dev-qa-db-ja.com

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

私は次の構文(正しいと思いますか?)を持っていますが、毎分コマンドを実行します!

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

それがおそらく私がやる方法です。これにより、4時間ごと、00:00、04:00、08:00 12:00、16:00、20:00にジョブが実行されます。

これはもう少し冗長な*/4の書き方ですが、同じように動作するはずです。

64
phuzion

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

  • */4 * * * /cmd.sh

ポスターはMarkdownに慣れておらず、最初の列にアスタリスクを付けたため、箇条書きのように見えました。私は彼らが投稿するつもりだったことを反映するように彼らの投稿を編集しました:

* */4 * * * /cmd.sh

その構成では、ポスターは観察した動作を取得します。ジョブは、4で割り切れる時間内に毎分1回実行されます。

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

15 * * * * whatever...

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

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

15 */4 * * * whatever...
76
Evan Anderson

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

0 */4 * * * path_to_the_script

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

問題は最初の列の*です

'* */2 * * */path-to-script'

これは、1時間ごとの実行に変換されますが、2時間ごとにのみ実行されます

9
charlie