crontab エントリを次のように記述しました:
00 19 1-7 * 3 /sbin/init 0
毎月第 1 水曜日に Linux サーバーがオフになるはずです。残念ながら、サーバーは今日 (木曜日) オフになりました。なぜこのようなことが起こるのか、また、どうすれば修正できるのか、どなたか教えてください。
答え1
からcrontab(5):
Note: The day of a command's execution can be specified by two fields --
day of month, and day of week. If both fields are restricted (ie,
aren't *), the command will be run when either field matches the cur-
rent time.
これはあなたのクローンタブエントリは期待どおりに動作しません。コマンドは毎月 1 日から 7 日まで毎日、および毎週水曜日に実行されます。
上記の理由により、クローンだけでは、その月の最初の水曜日かどうかは判断できません。ただし、次の条件を使用して1つの条件を確認できます。クローンそしてもう1つをチェックするテストそして日付:
00 19 1-7 * * [ $(/usr/bin/date +\%w) = 3 ] && /sbin/init 0
使い方:
コマンドは毎月 1 日から 7 日まで毎日実行されます。
$(/usr/bin/date +\%w)
曜日を返します。[ ... = 3 ] &&
その曜日が水曜日かどうかを確認します(3)。そうであれば
/sbin/init 0
実行されます。
パーセント記号は特別な意味を持つため、エスケープする必要があることに注意してください。クローン。