web-dev-qa-db-ja.com

金曜日の特定の時間枠を除く毎時のcronジョブ

Cronジョブを1時間ごとに実行したいのですが、金曜日の午前2時から午前9時の間はまったく実行したくない(ただし、この時間枠外では1時間ごと)場合を除きます。理想的には、これを1行/ 1つのcronジョブで実行したいと思います。私がこれまでに持っているのは2行です(そしてそれが正しいかどうかは100%確信していません):

0 0 * * 0,1,2,3,4,6 script.sh
0 0-1,10-23 * * 5 script.sh
2
Pamela

フォーマットは正しいようです(修正が適用された後、上記のコメントに投稿されています)。すべてを1行にするための特別な制限はありますか?すべてを1行にする必要がある場合は、金曜日の午前2時から9時を避けるために、シェルスクリプトを変更することをお勧めします。

#!/ bin/bash 
#このコードISテストされていません
#金曜日の午前2時から9時までスキップ
#what非実行時間は?
 STARTTIME = 2 
 ENDTIME = 9 
 
#現在の曜日を取得
 DAY = $(日付+ "%u")#1-月曜日、したがって5-金曜日
#および時間
 HOUR = $(日付+ "%H")
 
 if ["$ DAY" -eq 5 -a "$ HOUR" -ge "$ STARTTIME" -a "$ HOUR" -le "$ ENDTIME"] 
 then 
#実行を終了します
 exit 0 
 fi 

それが問題の解決に役立つことを願っています!

フランク

2
Frank Förster