我有一個監控腳本,每5分鐘執行一次任務調度程序。如果腳本確定存在問題,則會引發警報條件併發送通知電子郵件。腳本然後終止。一切都很好。檢查可能跨越日界的時間跨度
我想定義一些「安靜的時間」,在此期間,監控仍然發生在日程安排,但通知被抑制。這些時間將穿過午夜邊界。
我可以像這樣做:
$quietHoursStart = "22:00"
$quietHoursEnd = "06:00"
$timeNow = Get-Date
if ($timeNow -lt (Get-Date $quietHoursStart) -and
$timeNow -gt (Get-Date $quietHoursEnd)) {
Send-NotificationEmail
}
這很好,但如果我重新定義了安靜的時間範圍,以便它不跨午夜邊界(例如00:00 - > 06:00),那麼通知將始終失敗,因爲if
條件永遠不會成立。
如果可以增加額外測試,看看如果範圍跨越午夜,則有兩個單獨的檢查,看是否當前時間是「安靜」,但我覺得應該有一個更好的解決方案。
爲安靜的時間的值開始/結束實際上從XML配置文件被拉但是爲了清楚起見,上面的例子中使用了簡單的定義。
編輯:澄清;腳本必須每5分鐘運行一次,而不管安靜的時間,因爲它記錄了發現的問題日誌。改變時間表不會實現這一點。
http://stackoverflow.com/questions/4390617/windows-task-scheduler-run-only-during-window-of-time –
可能的誤解。我需要腳本始終觸發(以便它可以記錄問題)。我只是想在特定的時間內抑制通知。 – andyb