私は自分のウェブサイトから自分のローカルコンピュータへバックアップを引き出す自動スクリプトを持っています。このスクリプトは失敗する可能性があります。私のサーバーがダウンした後、また別の時に私は誤って自分のスクリプトを移動させました。
Windowsタスクスケジューラにスクリプトの失敗(または実行されない/見つからない)を通知する方法を教えてください。
プロンプトが表示されても、電子メールでも、デスクトップにも表示されても、問題ありません。問題が発生した場合は通知を受けたいです。私のサーバーでは、crontabがエラーについて私にEメールを送ります - これは素晴らしいことです。私は私のWindows 7のローカルコンピュータにそのようなものが欲しい。
スケジュールされたタスクが開始に失敗すると、イベントがTaskSchedulerイベントログに書き込まれます。
注:タスクスケジューラログは([管理ツール]の下)にあります。
Computer Management
System Tools
Event Viewer
Application and Services Logs
Microsoft
Windows
Task Scheduler
Operational
Windowsでは、さまざまなイベントが発生したときにスケジュールされたタスクを開始することができます。
この知識を身に付けて、スケジュールされたタスクが失敗したときに実行されるスケジュールされたタスクを作成できます。
このスケジュールされたタスクのアクションは、あなたが選択した方法(例えばシャットダウンを引き起こす)であなたに警告を送る何かに設定することができます。あなたはそれにEメールを送ってほしいだけかもしれません:
これがWindowsがすべてを処理する方法です。ログに表示されるイベントをトリガーとする多くの診断タスクを見ることができます。例えばIPアドレスの競合が検出されると、イベントがログに書き込まれます。
スケジュールされたタスクがこのイベントをトリガーし、プログラムを実行してそれについて知らせ、修正します。イベントIDは1つのタスクだけに固有のものではないことに注意してください。イベント203 - アクションの開始に失敗したタスクが発生すると、このタスクがトリガーされます。
バックアップジョブの値が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 = "[email protected]"
$Pass = ConvertTo-SecureString -String "myPassword" -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential $User, $Pass
################################################################################
$From = "Alert Scheduled Task <[email protected]>"
$To = "Me Gmail <[email protected]>"
$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
}
PushMon を見てください。スクリプトの最後に呼び出されるPushMon URLを作成できます。サーバーがダウンしたため、またはスクリプトが移動されたためにスクリプトが実行されない場合は、通知を受け取ります。あなたは電子メール、SMS、電話、IM、Twitterで通知を受けることができます。これはどのオペレーティングシステムでも動作します。これはPingdomに似ていますが、スクリプトとバックグラウンドタスク用です。