私はこれをいくつかの異なるLinuxおよびfreebsdシステムの/ etc/crontabに追加しました。
# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * 2 root /sbin/shutdown -r now
毎月第3火曜日に再起動したい。ただし、すべてのシステムは今月の第3水曜日(19日)に再起動しました。
私は何が間違っているのですか?
更新:以下のRanonの回答のおかげで、以下のリビジョンが機能するように見えます。誰かが確認できますか、それとももっと良い方法がありますか?
# monthly reboot: 3rd Tuesday of every month
56 07 15-21 * * root test $(date +\%u) -eq 2 && /sbin/shutdown -r now
見て man 5 crontab
。
注:コマンドの実行日は、曜日と曜日の2つのフィールドで指定できます。両方のフィールドが制限されている場合(つまり、*でない場合)、いずれかのフィールドが現在の時刻と一致したときにコマンドが実行されます。たとえば、「30 4 1,15 * 5」を指定すると、毎月1日と15日、および毎週金曜日の午前4時30分にコマンドが実行されます。ただし、コマンドにテストを追加することで、目的の結果を得ることができます(以下の「CRONファイルの例」の最後の例を参照してください)。
したがって、サーバーは毎日15〜21日、および毎週火曜日に再起動する必要があります。
マンページの例を見てください:
# Run on every second Saturday of the month
0 4 8-14 * * test $(date +%u) -eq 6 && echo "2nd Saturday"