คู่มือ CRONTAB GENERATOR ภาษาไทย
สร้าง Cron Expression แบบ 5 ช่อง พร้อมตรวจเวลาที่งานจะทำงานจริง
Crontab ใช้ตั้งเวลาให้ Linux เรียกคำสั่งซ้ำโดยอัตโนมัติ รูปแบบมาตรฐานมีห้าช่อง ได้แก่ นาที ชั่วโมง วันที่ เดือน และวันในสัปดาห์ เครื่องมือนี้ช่วยสร้าง expression อธิบายความหมาย และแสดงเวลาทำงานถัดไปในเขตเวลาของอุปกรณ์
โครงสร้าง Cron Expression 5 ช่อง
┌──────── นาที (0-59) │ ┌────── ชั่วโมง (0-23) │ │ ┌──── วันที่ของเดือน (1-31) │ │ │ ┌── เดือน (1-12) │ │ │ │ ┌ วันในสัปดาห์ (0-7) * * * * * /path/to/command
เครื่องหมาย * หมายถึงทุกค่าที่อนุญาต ใช้เครื่องหมายจุลภาคสำหรับหลายค่า ขีดกลางสำหรับช่วง และ / สำหรับช่วงห่าง เช่น */5
ตัวอย่าง Crontab ที่ใช้บ่อย
*/5 * * * *ทุก 5 นาที
0 * * * *ต้นชั่วโมงของทุกชั่วโมง
0 9 * * 1-509:00 น. วันจันทร์ถึงศุกร์
0 0 * * *เที่ยงคืนทุกวันตามเขตเวลาของเครื่อง
เวลาอ้างอิงเขตเวลาของเครื่องที่รัน cron ไม่ใช่เขตเวลาของเบราว์เซอร์เสมอ ตรวจค่าด้วยtimedatectl หรือการตั้งค่าของ container ก่อนใช้งานใน production
ทำไมคำสั่งทำงานใน Terminal แต่ไม่ทำงานใน Cron
Cron มักมี environment และ PATH สั้นกว่า shell ที่คุณเปิดใช้งานเอง จึงควรใช้ path เต็มของโปรแกรมและสคริปต์ กำหนด working directory ภายในคำสั่ง และส่ง stdout กับ stderr ไปยัง log ที่ตรวจสอบได้
กฎวันที่ที่มักเข้าใจผิด
ใน cron แบบดั้งเดิม หากจำกัดทั้งวันที่ของเดือนและวันในสัปดาห์ งานอาจทำงานเมื่อช่องใดช่องหนึ่งตรงเงื่อนไข หากต้องการให้ตรงพร้อมกันอย่างเคร่งครัด ควรใช้ * ในหนึ่งช่องแล้วตรวจเงื่อนไขเพิ่มในสคริปต์
ตรวจสอบหลังเพิ่มงานใน Crontab
- เปิดตารางด้วย
crontab -eแล้วบันทึกโดยไม่มีข้อความผิดพลาด - ใช้
crontab -lยืนยันว่า expression และคำสั่งถูกบันทึกครบ - ตรวจ service, system log หรือไฟล์ log ของคำสั่งหลังเวลาทำงานรอบแรก
- ทดสอบสคริปต์ด้วย environment ที่ใกล้เคียง cron และใช้บัญชีผู้ใช้เดียวกับงานจริง