crontabで時間をずらして定期実行する方法
投稿日: 2018/05/21
コマンド
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ライフを!