Skip to content

ภาพรวมฟีเจอร์ Task Scheduler

Task Scheduler (ตัวกำหนดเวลางาน) ใช้สำหรับ ทำงานอัตโนมัติตามช่วงเวลาใน WSL เพื่อหลีกเลี่ยงการบำรุงรักษาด้วยตนเองที่ซ้ำซาก โดยมีอินเทอร์เฟซการจัดการแบบภาพที่ช่วยให้คุณสร้างและจัดการงานตามกำหนดเวลาได้โดยไม่ต้องจำพารามิเตอร์บรรทัดคำสั่งที่ซับซ้อน

ตัวอย่างสถานการณ์การใช้งานฟีเจอร์นี้:

  • สำรองข้อมูลการแจกจ่ายใน WSL ตามช่วงเวลา
  • เรียกใช้สคริปต์หรือคำสั่งที่กำหนดเอง

งานทั้งหมดจะถูกรวบรวมไว้ภายใต้พาธ \WSLDashboard\UserTasks\ ของตัวกำหนดเวลางาน Windows เพื่อให้ดูและจัดการแบบรวมศูนย์ คุณสามารถดูสถานะงาน (พร้อม / กำลังทำงาน / ปิดใช้งาน) แบบเรียลไทม์ในอินเทอร์เฟซ

คลังสคริปต์ชุมชน

คุณสามารถดาวน์โหลดสคริปต์ตัวอย่าง (สำรองข้อมูลการแจกจ่าย) จากคลังชุมชนด้านล่างเพื่อเริ่มต้นใช้งานได้อย่างรวดเร็ว:

https://github.com/owu/wsl-community

นี่คือคลังโค้ดที่ผู้ใช้ร่วมกันสร้างขึ้น เรายินดีต้อนรับคุณในการส่ง Pull Request เพื่อมีส่วนร่วมในสคริปต์หรือแบ่งปันแนวทางปฏิบัติที่ดีที่สุด

การเรียกใช้คำสั่ง

การกำหนดค่าคำสั่ง

งานตามกำหนดเวลาแต่ละงานสามารถกำหนดค่าคำสั่งที่ต้องการเรียกใช้ (สคริปต์หรือไฟล์ปฏิบัติการ) โดยมีตัวเลือกดังต่อไปนี้:

รายการกำหนดค่าคำอธิบาย
คำสั่งเรียกใช้พาธไปยังสคริปต์หรือไฟล์ปฏิบัติการ รองรับรูปแบบเช่น .bat, .ps1, .cmd, .exe, .py สามารถเลือกไฟล์ได้ผ่านปุ่ม "เรียกดู"
พารามิเตอร์คำสั่งพารามิเตอร์เพิ่มเติมที่ส่งไปยังคำสั่ง (ไม่บังคับ)
สิทธิ์ผู้ดูแลระบบหากเลือก งานจะทำงานด้วยสิทธิ์สูงสุด เหมาะสำหรับการดำเนินการที่ต้องการการยกระดับ UAC

การจัดการงาน

หลังจากสร้างงานแล้ว คุณสามารถดำเนินการต่อไปนี้:

การดำเนินการคำอธิบาย
เรียกใช้ทันทีบังคับให้งานทำงานทันที โดยไม่ขึ้นกับกฎการกำหนดเวลา
เปิด/ปิดใช้งานหยุดชั่วคราวหรือเริ่มการกำหนดเวลาอัตโนมัติของงานอีกครั้ง
ลบลบงานออกจากตัวกำหนดเวลางาน

กฎการกำหนดเวลา

นิพจน์ Cron

การกำหนดเวลางานใช้นิพจน์ Cron 5 ฟิลด์มาตรฐาน เพื่อกำหนดกฎการทำงาน โดยมีรูปแบบดังนี้:

นาที ชั่วโมง วัน เดือน สัปดาห์
ฟิลด์ช่วงค่าคำอธิบาย
นาที0 - 59นาทีที่เท่าไรของทุกชั่วโมงให้ทำงาน
ชั่วโมง0 - 23ชั่วโมงที่เท่าไรของทุกวันให้ทำงาน
วัน1 - 31วันที่เท่าไรของทุกเดือนให้ทำงาน
เดือน1 - 12เดือนที่เท่าไรของทุกปีให้ทำงาน
สัปดาห์0 - 70 และ 7 หมายถึงวันอาทิตย์

แต่ละฟิลด์รองรับไวยากรณ์ต่อไปนี้:

  • * —— จับคู่ทุกค่า (เช่น * * * * * หมายถึงทำงานทุกนาที)
  • */N —— ทำงานทุก N หน่วย (เช่น */5 * * * * หมายถึงทำงานทุก 5 นาที)
  • ตัวเลขเดี่ยว —— จับคู่ค่าเฉพาะ (เช่น 0 9 * * 1 หมายถึงทำงานทุกวันจันทร์ เวลา 9:00 น.)

หมายเหตุ: ไม่รองรับค่าหลายค่าที่คั่นด้วยเครื่องหมายจุลภาค (เช่น 1,15) และนิพจน์ช่วง (เช่น 1-5) ข้อจำกัดเพิ่มเติมโปรดดูที่ข้อควรระวังด้านล่าง

รูปแบบการรวมที่รองรับ

ซอฟต์แวร์นี้ไม่ได้รัน Cron daemon ดั้งเดิม แต่จะแปลนิพจน์ Cron เป็นพารามิเตอร์ทริกเกอร์ของ Windows Task Scheduler (schtasks.exe) เพื่อการแมปที่แม่นยำ ตัวแยกวิเคราะห์จึงรองรับเฉพาะ 7 รูปแบบการรวม ต่อไปนี้เท่านั้น ซึ่งครอบคลุมสถานการณ์งานตามกำหนดเวลาส่วนใหญ่:

#รูปแบบคำอธิบายสถานการณ์การใช้งาน
1* * * * *ทำงานทุกนาทีงานตรวจสอบ งานตรวจจับแบบเรียลไทม์
2*/N * * * *ทำงานทุก N นาทีงานตรวจสอบเป็นระยะ
3M * * * *ทำงานที่่นาทีที่ M ของทุกชั่วโมง (เช่น 3 * * * *)งานตามชั่วโมง
4M H * * *ทำงานทุกวันเวลา H: M (เช่น 0 3 * * *)การบำรุงรักษาประจำวัน เช่น ล้างบันทึกทุกวันเวลาเที่ยงคืน
5M H * * DOWทำงานทุกสัปดาห์ตามวันที่กำหนดเวลา H: M (เช่น 0 12 * * 1)งานประจำสัปดาห์ เช่น สำรองข้อมูลทุกวันจันทร์
6M H D * *ทำงานทุกเดือนตามวันที่กำหนดเวลา H: Mงานรายเดือน เช่น สร้างรายงานวันที่ 1 ของทุกเดือน
7M H D MON *ทำงานทุกปีตามเดือนและวันที่กำหนดเวลา H: Mงานประจำปี เช่น ทำงานในเดือนที่ระบุ

หากนิพจน์ไม่อยู่ใน 7 รูปแบบข้างต้น ระบบจะถือว่าเป็น Unsupported cron pattern และปฏิเสธการสร้าง

ข้อควรระวัง

เนื่องจากทำงานบนพื้นฐานของ Windows Task Scheduler ตัวแยกวิเคราะห์ Cron ของซอฟต์แวร์นี้จึงมีความแตกต่างจาก Linux Cron มาตรฐานดังต่อไปนี้:

1. ไม่รองรับรายการ (,) และช่วง (-)

Cron มาตรฐานอนุญาตให้ใช้เครื่องหมายจุลภาคกำหนดจุดเวลาที่ไม่ต่อเนื่องหลายจุด (เช่น 1,15,30 * * * * หมายถึงนาทีที่ 1, 15, 30) หรือใช้ยัติภังค์กำหนดช่วง (เช่น 1-5 * * * * หมายถึงนาทีที่ 1 ถึง 5)

ข้อจำกัดของซอฟต์แวร์นี้: แต่ละฟิลด์สามารถใส่ได้เฉพาะ ตัวเลขเดี่ยว, เครื่องหมายดอกจัน (*) หรือ ขั้นตอน (*/N) เท่านั้น ไม่รองรับเครื่องหมายจุลภาคและยัติภังค์

2. ไม่รองรับการรวมแบบอิสระ

Cron มาตรฐานอนุญาตให้รวมฟิลด์ใดๆ ได้อย่างอิสระ (เช่น * 3 * * * หมายถึงทุกนาทีในช่วงเวลาตี 3) แต่ซอฟต์แวร์นี้รองรับเฉพาะ 7 รูปแบบตายตัวที่ระบุไว้ข้างต้นเท่านั้น นิพจน์ที่อยู่นอกช่วงนี้จะถูกปฏิเสธ

3. ความแตกต่างของการจัดตำแหน่งเวลาสำหรับรูปแบบขั้นตอน

ใน Cron มาตรฐาน */5 * * * * จะจัดตำแหน่งอย่างเคร่งครัดที่นาที 0, 5, 10, 15... ของชั่วโมง ซอฟต์แวร์นี้จะแปลเป็นพารามิเตอร์ /SC MINUTE /MO 5 ของ Windows ซึ่งตรรกะการประมวลผลของ Windows คือการคำนวณช่วงเวลาจากช่วงเวลาที่สร้างหรือเปิดใช้งานงาน

ตัวอย่างเช่น หากคุณบันทึกและเปิดใช้งานงานที่ทำงานทุก 5 นาทีเวลา 10:02 งานจะทำงานครั้งแรกเวลา 10:07 จากนั้นเวลา 10:12 แทนที่จะจัดตำแหน่งตามเวลามาตรฐานที่ 10:05