ทำให้ Windows Task Scheduler เตือนฉันเมื่อล้มเหลว


65

ฉันมีสคริปต์อัตโนมัติที่ดึงการสำรองข้อมูลจากเว็บไซต์ของฉันไปยังคอมพิวเตอร์ของฉัน สคริปต์นี้อาจล้มเหลว เมื่อเซิร์ฟเวอร์ของฉันหยุดทำงานอีกครั้งที่ฉันย้ายสคริปต์โดยไม่ตั้งใจ

ฉันจะทำให้ Windows Task Scheduler บอกฉันได้อย่างไรว่าสคริปต์ล้มเหลว (หรือไม่พบ / ไม่พบ)

ฉันไม่สนใจว่าจะมีพรอมต์อีเมลหรือสิ่งที่ปรากฏบนเดสก์ท็อป ฉันต้องการรับการแจ้งเตือนหากมีสิ่งผิดปกติเกิดขึ้น บนเซิร์ฟเวอร์ของฉัน crontab ส่งอีเมลถึงฉันเกี่ยวกับข้อผิดพลาด - ซึ่งยอดเยี่ยมมาก ฉันต้องการบางอย่างเช่นนั้นบนคอมพิวเตอร์ที่ใช้ Windows 7


พบ ID เหตุการณ์ตัวกำหนดตารางงานอย่างน้อยmnaoumov.wordpress.com/2014/05/15/task-scheduler-event-ids

คำตอบ:


87

เมื่องานที่กำหนดเวลาไว้ไม่สามารถเริ่มต้นได้เหตุการณ์จะถูกเขียนไปยังบันทึกเหตุการณ์TaskScheduler :

หมายเหตุ:บันทึก Task Scheduler ตั้งอยู่ที่ (ภายใต้เครื่องมือการดูแลระบบ)

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

ป้อนคำอธิบายรูปภาพที่นี่

Windows ให้คุณเรียกใช้งานที่กำหนดเวลาไว้ให้เริ่มเมื่อมีเหตุการณ์หลากหลายเกิดขึ้นเช่น:

  • เวลาของวัน
  • การเริ่มต้นระบบ
  • ผู้ใช้เข้าสู่ระบบ
  • บันทึกเหตุการณ์ในบันทึกเหตุการณ์

ด้วยความรู้นี้คุณสามารถสร้างงานตามกำหนดเวลาที่ทำงานเมื่องานที่คุณจัดตารางไว้ล้มเหลว:

ป้อนคำอธิบายรูปภาพที่นี่

การกระทำของงานที่กำหนดเวลาไว้นี้จะสามารถตั้งค่าเป็นสิ่งที่ส่งการแจ้งเตือนถึงคุณ - ในวิธีการที่คุณเลือก (เช่นเปิดการปิดเครื่อง) คุณอาจต้องการให้ส่งอีเมล:

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือวิธีที่ Windows จัดการกับทุกสิ่ง คุณสามารถเห็นงานการวินิจฉัยหลายอย่างที่ก่อให้เกิดเหตุการณ์ที่ปรากฏในบันทึก เช่นเมื่อตรวจพบความขัดแย้งของที่อยู่ IP เหตุการณ์จะถูกเขียนลงในบันทึก:

  • เข้าสู่ระบบ:ระบบ
  • ที่มา: Tcpip
  • รหัสเหตุการณ์: 4198

งานที่กำหนดเวลาจะก่อให้เกิดเหตุการณ์นี้และเรียกใช้โปรแกรมเพื่อบอกคุณเกี่ยวกับมันและเพื่อแก้ไข โปรดทราบว่ารหัสเหตุการณ์ไม่ได้ระบุเฉพาะงานเดียว งานใด ๆ ที่สร้างเหตุการณ์ 203 - การดำเนินการล้มเหลวในการเริ่มต้นจะเรียกใช้งานนี้


2
คุณได้รับรหัสเหตุการณ์จากบันทึกเหตุการณ์ (203 และ 103) คุณสามารถดูรหัสเหตุการณ์ในภาพหน้าจอ (203 และ 103) หรือฉันสามารถบอกรหัสเหตุการณ์ของคุณได้ที่: 203 และ 103
เอียนบอยด์

5
คุณจะทำอย่างไรถ้าภารกิจที่สองล้มเหลว!?!?
วิลเลียมแจ็คสัน

3
@WilliamJackson สร้างกิจกรรมที่ปิดเครื่อง บางคนจะได้รับการแจ้งเตือนถึงปัญหาอย่างแน่นอน
Ian Boyd

11
จริงๆแล้วถ้างานที่ 2 ล้มเหลวมันจะเปิดงานที่ 2 ซึ่งจะล้มเหลวซึ่งจะเปิดงานที่ 2 ซึ่งจะล้มเหลวซึ่งจะเปิดงานที่ 2 ซึ่งจะ ... คุณได้รับความคิด ฉันเพิ่งค้นพบวิธีที่ยาก = /
Rob Penridge

6
สิ่งนี้จะไม่เตือนคุณหากงานล้มเหลวเฉพาะเมื่อไม่สามารถเริ่มงานได้ ไม่ใช่สิ่งเดียวกัน
jwg

11

นี่คือสคริปต์ของฉันที่จะเตือนฉันเมื่องานสำรองของฉันมีค่ามากกว่า 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
}

นี่เป็นตัวเลือกที่ดีเนื่องจากคำตอบที่เลือกในปัจจุบันใช้คุณสมบัติ Windows ที่เลิกใช้แล้ว
John Hargrove

โปรดทราบว่านี่เป็นโซลูชันที่ออกแบบมาเฉพาะสำหรับผู้ใช้ที่มี Windows ในภาษาอังกฤษ อาร์กิวเมนต์สำหรับ "ดัชนี" จะต้องเปลี่ยนตามภาษาของผู้ใช้ใน Windows
Eda190

7

ลองดูที่PushMon คุณสามารถสร้าง PushMon URL ที่จะถูกเรียกในตอนท้ายของสคริปต์ของคุณ หากสคริปต์ของคุณไม่ทำงานเนื่องจากเซิร์ฟเวอร์หยุดทำงานหรือสคริปต์ถูกย้ายคุณจะได้รับแจ้ง คุณสามารถรับการแจ้งเตือนทางอีเมล, SMS, โทรศัพท์, IM และ Twitter สิ่งนี้จะทำงานได้กับระบบปฏิบัติการใด ๆ มันเหมือนกับ Pingdom แต่สำหรับสคริปต์และงานพื้นหลัง


1
หากคุณเพิ่มลงในส่วนท้ายของสคริปต์ของคุณและสคริปต์หายไป (เช่นย้าย) มันควรจะเรียกว่าอย่างไร‽
Bob

3
เนื่องจากสคริปต์ถูกย้ายและไม่ได้รับการเรียก URL คุณจะได้รับการแจ้งเตือน
Bienvenido David

1
พยายามที่จะเยี่ยมชมเว็บไซต์ของพวกเขา; แดกดันดูเหมือนว่าจะลง ..
ไอแซคไคลน์แมน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.