Developer

Cron Job คืออะไร เขียน Expression ยังไงให้ถูก

⏰ Cron คือ Task Scheduler ของ Unix/Linux ที่ใช้กำหนดให้งานรันอัตโนมัติตามเวลา — ตั้งแต่ backup ข้อมูลทุกคืน ไปจนถึง report รายสัปดาห์ Cron Expression ที่เขียนถูกต้องช่วยประหยัดงาน manual ได้มาก

โครงสร้าง Cron Expression

Cron Expression ประกอบด้วย 5 field คั่นด้วยช่องว่าง แต่ละ field แทนค่าเวลาที่แตกต่างกัน:

*
นาที
0–59
*
ชั่วโมง
0–23
*
วันที่
1–31
*
เดือน
1–12
*
วันสัปดาห์
0–7 (0,7=อา)

* * * * * = ทุกนาที, ทุกชั่วโมง, ทุกวัน, ทุกเดือน, ทุกวันสัปดาห์

Special Characters ที่ต้องรู้

Characterความหมายตัวอย่าง
*ทุกค่าที่เป็นไปได้* * * * * — ทุกนาที
,หลายค่า0 9,18 * * * — 9:00 และ 18:00
-ช่วงค่า0 9 * * 1-5 — 9:00 จ.-ศ.
/ทุกๆ N หน่วย*/15 * * * * — ทุก 15 นาที
Lวันสุดท้าย (บางระบบ)0 0 L * * — วันสุดท้ายของเดือน

ตัวอย่าง Cron Expression ที่ใช้บ่อย

Expressionความหมาย
0 9 * * 1-59:00 น. ทุกวันจันทร์–ศุกร์
*/15 * * * *ทุก 15 นาที ตลอดเวลา
0 0 1 * *เที่ยงคืนวันที่ 1 ของทุกเดือน
0 18 * * 518:00 ทุกวันศุกร์
30 7 * * *07:30 ทุกวัน
0 */4 * * *ทุก 4 ชั่วโมง (00:00, 04:00, 08:00...)
0 0 * * 0เที่ยงคืนทุกวันอาทิตย์
0 3 * * *03:00 ทุกวัน (เหมาะ backup)

@shortcuts ที่จำง่ายกว่า

บาง Cron daemon รองรับ Shortcuts แทน Expression:

Shortcutเทียบกับความหมาย
@hourly0 * * * *ทุกชั่วโมงตอนต้นชั่วโมง
@daily0 0 * * *ทุกวัน 00:00 น.
@weekly0 0 * * 0ทุกอาทิตย์ 00:00 น.
@monthly0 0 1 * *วันที่ 1 ของทุกเดือน 00:00 น.
@rebootรันครั้งเดียวตอน boot

เคล็ดลับการใช้งาน Cron อย่างถูกต้อง

  • ทดสอบ Expression ก่อน deploy: ใช้ Cron Expression Builder เพื่อดูว่า Job จะรันเมื่อไหร่บ้าง
  • Redirect output ไปที่ log: 0 * * * * /path/script.sh >> /var/log/cron.log 2>&1
  • ระวัง Timezone: Cron ใช้ timezone ของ server — ถ้า server อยู่ UTC ต้องแปลงเวลาเอง
  • Path แบบ absolute: Cron ไม่มี PATH เหมือน interactive shell ควรใช้ path เต็มเสมอ
  • ทดสอบ script แยก: รัน script ด้วยมือก่อนแน่ใจว่าทำงานถูกต้อง แล้วค่อยใส่ Cron

✅ ใน Linux ดู Cron Job ที่ active ได้ด้วย crontab -l และแก้ไขด้วย crontab -e

🕐 สร้างและทดสอบ Cron Expression

เลือกเวลาที่ต้องการ ระบบสร้าง Cron Expression ให้อัตโนมัติ และแสดงว่า Job จะรันเมื่อไหร่บ้างใน 10 ครั้งถัดไป

เปิด Cron Expression Builder →

ฟรี · ไม่ต้องสมัครสมาชิก · คำนวณในเบราว์เซอร์