สร้าง Cron Expression ได้ทันที
กำหนดค่าในแต่ละฟิลด์ — นาที ชั่วโมง วันในเดือน เดือน และวันในสัปดาห์ — แล้วรับบรรทัด crontab ที่พร้อมใช้งาน พร้อมคำอธิบายเป็นภาษาที่เข้าใจง่าย
ทุกอย่างทำงานอยู่ในเบราว์เซอร์ของคุณโดยตรง — ไม่มีการส่งข้อมูลไปที่ใดเลย และไม่มีการจัดเก็บตารางเวลาใด ๆ
Cron Expression คืออะไร?
Cron expression คือรูปแบบที่มี 5 ฟิลด์ ซึ่งระบบที่คล้าย Unix ใช้ในการตั้งเวลาให้คำสั่งทำงานโดยอัตโนมัติตามเวลา วันที่ หรือช่วงเวลาที่กำหนดไว้
แต่ละฟิลด์ควบคุมหน่วยเวลาที่แตกต่างกัน — นาที ชั่วโมง วันในเดือน เดือน และวันในสัปดาห์ — และเมื่อรวมกันแล้วจะกำหนดได้อย่างแม่นยำว่างานควรทำงานเมื่อใด
ไวยากรณ์ของฟิลด์ Cron
| นาที | 0–59 |
| ชั่วโมง | 0–23 |
| วันในเดือน | 1–31 |
| เดือน | 1–12 |
| วันในสัปดาห์ | 0–6 (0 = วันอาทิตย์) |
อักขระพิเศษ
| * | ค่าใดก็ได้ — ตรงกับทุกค่าที่เป็นไปได้ของฟิลด์นั้น |
| , | ตัวคั่นรายการค่า — เช่น 1,15 หมายถึงวันที่ 1 และวันที่ 15 |
| - | ช่วงของค่า — เช่น 1-5 หมายถึงตั้งแต่วันจันทร์ถึงวันศุกร์ |
| / | ค่าขั้นตอน — เช่น */15 หมายถึงทุก 15 หน่วย |
ทำไมต้องใช้เครื่องมือสร้าง Cron?
- หลีกเลี่ยงข้อผิดพลาดทางไวยากรณ์ที่ทำให้งานที่ตั้งเวลาไว้หยุดทำงานโดยไม่รู้ตัว
- ดูคำอธิบายเป็นภาษาที่เข้าใจง่ายก่อนนำตารางเวลาไปใช้งานจริง
- เริ่มต้นจากตัวอย่างที่ใช้กันทั่วไปแทนการเขียนขึ้นมาใหม่ทั้งหมด
- รับบรรทัด crontab ที่พร้อมวางใช้งานได้ทันที พร้อมคำสั่งเสริมที่ไม่บังคับ
- ไม่ต้องติดตั้งโปรแกรมหรือสร้างบัญชีใด ๆ
วิธีสร้าง Cron Expression
- กำหนดฟิลด์นาที ชั่วโมง วัน เดือน และวันในสัปดาห์ — หรือเลือกตัวอย่างที่ใช้กันทั่วไป
- เพิ่มคำสั่งที่ต้องการรันได้ตามต้องการ (ไม่บังคับ)
- ตรวจสอบคำอธิบายเป็นภาษาที่เข้าใจง่ายเพื่อยืนยันว่าตารางเวลาถูกต้อง
- คัดลอกบรรทัด crontab แล้วนำไปวางในไฟล์ crontab ของคุณ
แนวทางปฏิบัติที่ดีสำหรับ Cron
ควรเลือกเวลาที่เจาะจงมากกว่าการตั้งตารางเวลาที่ถี่เกินไป — การรันงานทุกนาทีในขณะที่ทุก 5 หรือ 15 นาทีก็เพียงพอแล้ว เป็นการสิ้นเปลืองทรัพยากร
เมื่องานหนึ่งขึ้นอยู่กับทั้งวันในเดือนและวันในสัปดาห์ ควรจำไว้ว่า cron ส่วนใหญ่จะปฏิบัติต่อสองฟิลด์นี้แบบ OR ไม่ใช่ AND
บันทึกผลลัพธ์ของงานที่ตั้งเวลาไว้เสมอ (เช่น การเปลี่ยนทางไปยังไฟล์) เพื่อไม่ให้ความล้มเหลวหลุดรอดไปโดยไม่มีใครสังเกตเห็น
กรณีการใช้งานทั่วไป
- การสำรองข้อมูลฐานข้อมูลโดยอัตโนมัติ
- งานหมุนเวียนและทำความสะอาดไฟล์บันทึก (log)
- การสร้างรายงานตามตารางเวลา
- การอุ่นแคชหรือยกเลิกความถูกต้องของแคช
- การส่งอีเมลสรุปเป็นระยะ
- การซิงค์ข้อมูลระหว่างระบบ
- การตรวจสอบสถานะและการส่งสัญญาณตรวจสอบระบบ
- การต่ออายุใบรับรองหรือโทเคน
คำถามที่พบบ่อย
งาน cron ทำงานตามเขตเวลาใด?
โดยค่าเริ่มต้น cron จะใช้เขตเวลาท้องถิ่นของระบบ บางแพลตฟอร์มอาจให้คุณตั้งเขตเวลาที่เจาะจงต่องานหรือต่อ crontab ได้ — โปรดตรวจสอบเอกสารของระบบของคุณ
Cron expression สามารถระบุวินาทีได้หรือไม่?
Cron แบบมาตรฐานของ Unix รองรับเพียง 5 ฟิลด์เท่านั้น (นาทีขึ้นไป) โดยไม่มีฟิลด์วินาที ตัวจัดการตารางเวลาบางตัว เช่น Quartz รองรับฟิลด์วินาทีที่เป็นตัวเลือกเพิ่มเติม แต่นั่นเป็นรูปแบบที่แตกต่างออกไป
จะเกิดอะไรขึ้นถ้าฉันกำหนดทั้งวันในเดือนและวันในสัปดาห์?
การทำงานของ cron ส่วนใหญ่จะรันงานเมื่อเงื่อนไขใดเงื่อนไขหนึ่งตรงกัน (แบบ OR ไม่ใช่ AND) หากต้องการให้รันเฉพาะวันที่ที่เจาะจงและตรงกับวันในสัปดาห์ที่เจาะจงด้วย โดยทั่วไปคุณจะต้องเพิ่มตรรกะเสริมไว้ในสคริปต์เอง
ฉันจะทดสอบ cron expression ก่อนนำไปใช้งานจริงได้อย่างไร?
ตรวจสอบคำอธิบายเป็นภาษาที่เข้าใจง่ายที่แสดงไว้ที่นี่เพื่อยืนยันว่าตรงกับความต้องการของคุณ จากนั้นทดสอบยืนยันบนระบบจริงของคุณด้วยตารางเวลาทดสอบระยะสั้นก่อนนำไปใช้งานจริง
ฉันควรใช้ cron หรือ systemd timers?
Cron มีความเรียบง่ายและใช้งานได้กับทุกระบบ จึงเหมาะอย่างยิ่งสำหรับงานที่ต้องทำซ้ำแบบไม่ซับซ้อน ส่วน systemd timers มีการควบคุมที่มากกว่า (การกำหนดความสัมพันธ์ระหว่างงาน การบันทึกล็อก การจัดการงานที่พลาดกำหนดเวลา) และเป็นตัวเลือกที่ดีสำหรับระบบที่ใช้ systemd อยู่แล้ว