毎日クローン作業を開始する必要がありますが、毎日1時間ずつ遅く開始する必要があります。今年の日を除いて、今まで私が持っていたもののほとんどはうまくいきます。
0 0 * * * sleep $((3600 * (10#$(date +\%j) \% 24))) && /usr/local/bin/myprog
日付が365の場合は5時に作業が始まりますが、翌日(うるう年を除く)にはその年の日付が1になるため、1時に作業が始まります。この極端な状況からどのように外れますか?
ベストアンサー1
私が好む解決策は毎時間作業を始めますが、スクリプト自体で実行する時間であることを確認してから、25回のうち24回は何もせずに終了することです。
予約されたもの:
0 * * * * /usr/local/bin/myprog
上myprog
:
[ 0 -eq $(( $(date +%s) / 3600 % 25 )) ] || exit 0
スクリプト自体を変更したくない場合は、「実行時間」チェックをcrontabエントリに入れることもできますが、これを行うと長くて見苦しい行が表示されます。
0 * * * * [ 0 -eq $(( $(date +\%s) / 3600 \% 25 )) ] && /usr/local/bin/myprog