特定のオプションのcrontabの予約

特定のオプションのcrontabの予約

四半期ごとに、2日目の午前2時に実行されるcrontabエントリを追加する必要があります。

次のうちどれが正しいですか?オペレーティング・システムはAIXです。

00 02 8-14 */3 0  &&  /myscript.sh 

または

00 02 8-14 */3 * [ "$(date '+\%a')" == "Sun" ]  &&  /myscript.sh

ベストアンサー1

分、時間、月が正確です。

曜日と月の間に相互作用があります。最初のバージョンは8日から14日まで毎日実行され、そして毎週日曜日(ただし、11日が日曜日の場合は2回はありません)

からman -s 5 crontab

注:コマンドが実行される日付は、日付と曜日の2つのフィールドで指定できます。両方のフィールドが制限されている場合(つまり*ではありません)、両方のフィールドの1つが現在の時刻と一致するときにコマンドが実行されます。

2番目のバージョンには2つの問題がある可能性があります。

(1) /bin/sh または crontab で指定されたシェルで実行できます。==携帯性はどうかわからないですね。

(2) 「Sun」はロケールによって異なります。

私はおそらくこれを避けますが、[ "$( date '+\%u')" -eq 7 ]コメントを使用して説明します。

これにより

00 02 8-14 1,4,7,10 * [ "$(date '+\%u')" -eq 7 ] && /myscript.sh 

おすすめ記事