会社で管理しているサーバは、深夜にサービスを提供できる必要があまりなく、稼動していないことがそれほどクリティカルでないサーバだ。なので、月例のWindowsUpdateの人柱(鯖柱?)として使用している。というわけでそのサーバには、WindowsUpdate提供開始日に、WindowsUpdateを必ず適用している。
まあクリティカルなサーバではないが、リブートはできるだけサービスを受けているユーザが少ない時間帯がよいので、WindowsUpdateを実行した翌日の朝4時ごろリブートするように設定している。
月例のWindowsUpdateは米国時間の第2火曜日に提供開始される。よって時差がある日本の場合、第2水曜日に提供開始される・・・と思いきや、水曜日から始まっている月は「第2火曜日」の翌日は「第3水曜日」なのだ。
日 月 火 水 木 金 土 __ __ __ _1 _2 _3 _4 _5 _6 _7 _8 _9 10 11 12 13 14 15 16 17 18
この影響で、月例のWindowsUpdate提供開始日かその翌日に、サーバをリブートするようにタスクをスケジューリングするためには、すこしだけトリッキーな方法が必要だ。
その方法とは・・・・
簡単な方法なのだが結構な盲点だ。
正解は「第2火曜日に、86400秒(1日)以上後にリブートするようなタスクをスケジューリングする」
shutdown -r -t 86400
というようなコマンドが第2火曜日に実行されるように設定すればいいのだ。
ちなみに件のサーバは第2火曜日のAM4:00に172800秒後にリブートするような設定を行っている。
まあ参考まで。