2018/05/21

crontabで時間をずらして定期実行する方法

コマンド 


crontabで時間をずらして定期実行する方法を紹介します。


crontabといえば、決まった時間にプログラムを実行するための定義。

5分おきに実行する」など良く使うのですが、ずらして実行するにはどうすれば良いか、備忘録としてメモしておきます。



5分おきに実行

*/5 * * * * command


*はすべての分、つまり毎分が実行対象となります。

それを5分間隔で実行する設定です。


0分、5分、15分、、、55分に実行されます。


1分ずらして実行

1-56/5 * * * * command


1分から59分の間が実行対象。

0分は実行対象に含まれないので、結果として1分ずれることになります。


1分、6分、11分、、、56分に実行されます。


2分ずらして実行

2-57/5 * * * * command


2分、7分、12分、、、57分に実行されます。


3分ずらして実行

3-58/5 * * * * command


3分、8分、13分、、、58分に実行されます。


4分ずらして実行

4-59/5 * * * * command


4分、9分、14分、、、59分に実行されます。


私の使いどころ

私がこのずらしを使ったのは「他システムデータ連携バッチ」です。


毎日毎時間に5分おきにデータを取得するのですが、0時に連携元データがまだ作られていなくエラーになることが多々ありました。

そこで時間をすこしずらすことで対応しました。


終わりに

1-56/5 の部分を好きに変えると、例えば15分ずらしたりすることも可能ですね。


良いcrontabライフを!



このエントリーをはてなブックマークに追加     

profile
profile

洋ちゃん

@yo-chan

システムエンジニアをしています。二児の父です。

夢は天井から床までビッシリ並んだ本棚のある書斎を作ること!