2011-02-22 21:15:46 +0000 2011-02-22 21:15:46 +0000
69
69

Spraw, aby Harmonogram zadań Windows ostrzegał mnie o niepowodzeniu

Mam zautomatyzowany skrypt, który wyciąga kopie zapasowe z mojej strony internetowej na mój komputer lokalny. Ten skrypt może zawieść; raz mój serwer padł, innym razem przypadkowo przeniosłem mój skrypt.

Jak mogę sprawić, aby Harmonogram zadań Windows informował mnie o niepowodzeniu skryptu (lub nie uruchamia się/nie znaleziono go)?

Nie obchodzi mnie, czy pojawi się monit, e-mail lub coś, co pojawi się na moim pulpicie. Chcę być powiadomiony, jeśli coś pójdzie nie tak. Na moim serwerze, crontab wysyła mi maile o błędach - co jest świetne. Chcę mieć coś takiego na moim lokalnym komputerze z systemem Windows 7.

Odpowiedzi (3)

89
89
89
2011-02-22 22:13:57 +0000

Gdy zaplanowane zadanie nie zostanie uruchomione, zdarzenie jest zapisywane w dzienniku zdarzeń TaskScheduler:

Uwaga: Dziennik Harmonogramu Zadań znajduje się pod adresem (w Narzędziach Administracyjnych)

Computer Management
    System Tools
       Event Viewer
          Application and Services Logs
             Microsoft
                Windows
                   Task Scheduler
                      Operational

Windows pozwala wyzwalać zaplanowane zadania, aby uruchamiały się, gdy wystąpi wiele różnych zdarzeń, np:

  • pora dnia
  • start systemu
  • logowanie użytkownika
  • zdarzenie zapisane w dzienniku zdarzeń

Uzbrojony w tę wiedzę, możesz stworzyć zaplanowane zadanie, które uruchomi się, gdy Twoje zaplanowane zadanie nie powiedzie się:

akcja tego zaplanowanego zadania może być następnie ustawiona na coś, co wyśle Ci powiadomienie - w wybrany przez Ciebie sposób (np. wywoła wyłączenie). Możesz po prostu chcieć, aby wysłał e-mail:

W ten sposób Windows radzi sobie ze wszystkim. Możesz zobaczyć wiele zadań diagnostycznych, które uruchamiają się na podstawie zdarzenia pojawiającego się w dzienniku. np. gdy wykryty zostanie konflikt adresu IP, do dziennika zapisywane jest zdarzenie:

  • Log: System
  • Źródło: Tcpip
  • Event ID: 4198

Na to zdarzenie wyzwala się zaplanowane zadanie, które uruchamia program informujący o tym zdarzeniu i pozwalający je naprawić. Należy pamiętać, że identyfikator zdarzenia nie jest specyficzny dla jednego zadania. Każde zadanie, które wygeneruje zdarzenie 203 - Akcja nieudana, spowoduje uruchomienie tego zadania.

14
14
14
2016-01-15 20:59:39 +0000

Oto mój skrypt, który powiadamia mnie, gdy moje zadanie tworzenia kopii zapasowej ma wartość większą niż 0.

$ScheduledTaskName = "Hans\Backup"
$Result = (schtasks /query /FO LIST /V /TN $ScheduledTaskName | findstr "Result")
$Result = $Result.substring(12)
$Code = $Result.trim()

If ($Code -gt 0) {
    $User = "mymail@gmail.com"
    $Pass = ConvertTo-SecureString -String "myPassword" -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential $User, $Pass
################################################################################

$From = "Alert Scheduled Task <mymail@gmail.com>"
$To = "Me Gmail <mymail@gmail.com>"
$Subject = "Scheduled task 'Backup' failed"
$Body = "Error code: $Code"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"

Send-MailMessage -From $From -to $To -Subject $Subject `
-Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl `
-Credential $Cred
}
7
7
7
2012-06-01 13:42:17 +0000

Spójrz na PushMon . Możesz utworzyć adres URL PushMon, który będzie wywoływany na końcu twojego skryptu. Jeśli Twój skrypt nie zostanie uruchomiony, ponieważ serwer nie działał lub skrypt został przeniesiony, zostaniesz o tym powiadomiony. Możesz zostać powiadomiony przez e-mail, SMS, telefon, IM i Twitter. To będzie działać dla każdego systemu operacyjnego. To jest jak Pingdom, ale dla skryptów i zadań w tle.