数日おきに設定したcronの実行が1日ずれる理由

数日おきに実行されるcronを設定すると、実行されると思っていた日の翌日にcronが実行されるといったことがあります。
実行日が1日ずれる理由を説明していきます。

まずcronの書き方は次のようになります。

分 時 日 月 曜日 実行するコマンド

毎月20日の23:45に実行する場合は次のようになります。

45 23 20 * * sh example.sh

数分おきに実行する場合は/と実行する間隔を指定します。
5分おきなら次のようになります。

*/5 * * * * sh example.sh

この場合、0分、5分、10分、15分、20分、、の実行です。

1分ずらしたい場合は範囲を指定します。

1-59/5 * * * * sh example.sh

この場合、1分、6分、11分、16分、21分、、の実行です。

数日おきに実行するcron、例えば5日おきだとすると次のような書き方になります。

* * */5 * * sh example.sh

このときcronが実行されるのは1日、6日、11日、16日、21日、、となります。
5で割り切れる日ではありません。

なぜ1日ずれるかというと、この*は1-31を表しているため、「1日から開始して5日おき」となるからです。

* * */5 * * sh example.sh
 は
* * 1-31/5 * * sh example.sh
 と同じ

関連記事

スポンサーリンク

fast-import

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る