ReSuMeYaDev

เครื่องมือนักพัฒนา

แปลง Cron Expression — อ่าน crontab เป็นภาษาคน

พิมพ์ cron expression เช่น 0 9 * * 1-5 ระบบจะแปลเป็นภาษาคน พร้อมคำนวณเวลารัน 5 ครั้งถัดไป รองรับ Vixie cron syntax

  • ใช้งานฟรี
  • แปลงเป็นภาษาคน
  • 5 เวลารันถัดไป
  • รองรับมือถือ

คำจำกัดความ

Cron Expression คืออะไร?

Cron Expression (หรือ crontab) คือรูปแบบเวลาที่ใช้กำหนดว่า cron job จะรันเมื่อไหร่ ประกอบด้วย 5 ฟิลด์คั่นด้วยช่องว่าง: นาที ชั่วโมง วันในเดือน เดือน และวันในสัปดาห์

Cron ใช้กันทั่วไปในระบบ Unix/Linux สำหรับงาน scheduled เช่น backup, log rotation, cache cleanup, report generation รวมถึงใน Kubernetes CronJob, GitHub Actions และ serverless platforms

โครงสร้าง

โครงสร้าง 5 ฟิลด์

  • ฟิลด์ 1 — นาที (0-59)
  • ฟิลด์ 2 — ชั่วโมง (0-23)
  • ฟิลด์ 3 — วันในเดือน (1-31)
  • ฟิลด์ 4 — เดือน (1-12 หรือ JAN-DEC)
  • ฟิลด์ 5 — วันในสัปดาห์ (0-6 โดย 0=อาทิตย์ หรือ SUN-SAT)

Operators

Operators ที่ใช้บ่อย

  • * — ค่าทั้งหมด เช่น * ในฟิลด์นาที = ทุกนาที
  • , — หลายค่า เช่น 0,15,30,45 = นาทีที่ 0, 15, 30, 45
  • - — ช่วงค่า เช่น 1-5 ในฟิลด์วัน = จันทร์ถึงศุกร์
  • / — step เช่น */5 ในฟิลด์นาที = ทุก 5 นาที
  • @yearly / @annually — 0 0 1 1 *
  • @monthly — 0 0 1 * *
  • @weekly — 0 0 * * 0
  • @daily / @midnight — 0 0 * * *
  • @hourly — 0 * * * *

ตัวอย่าง

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

  • 0 0 * * * — ทุกวันเที่ยงคืน (00:00)
  • */15 * * * * — ทุก 15 นาที
  • 0 9 * * 1-5 — ทุกวันทำงาน 09:00
  • 0 0 1 * * — วันแรกของทุกเดือน 00:00
  • 0 2 * * 0 — ทุกวันอาทิตย์ 02:00
  • 30 3 */2 * * — วันคู่ 03:30

กรณีใช้งาน

กรณีใช้งาน

  • ตรวจสอบ crontab ที่เขียนใน production ว่ารันในเวลาที่ต้องการจริงๆ
  • แปลงเป็นภาษาคนก่อนอธิบายให้ทีมที่ไม่ได้เขียน cron ประจำ
  • Debug ว่าทำไม scheduled job ไม่ทำงานในเวลาที่คาด
  • เรียนรู้ syntax cron ผ่านตัวอย่างจริงและผลลัพธ์ทันที
  • คัดลอก pattern ที่ถูกต้องไปใช้ใน Kubernetes CronJob หรือ GitHub Actions

ข้อควรรู้

เคล็ดลับและข้อควรรู้

  • ทดสอบ cron expression ก่อนเอาไป production เพื่อป้องกัน job ไม่รันหรือรันถี่เกินคาด
  • ใช้ @daily, @weekly แทน 0 0 * * * ถ้าอ่านง่ายกว่าและระบบรองรับ
  • ระวัง timezone — cron บน server ส่วนใหญ่ใช้ UTC ไม่ใช่เวลาท้องถิ่น
  • อย่าตั้ง job ให้รันที่นาที 0 ของทุกชั่วโมงพร้อมกันหลาย job เพราะจะเกิด thundering herd
  • Cron ไม่มี ‘วินาที’ ในมาตรฐานเดิม — ใช้ได้ละเอียดสุด 1 นาที

FAQ

คำถามที่พบบ่อย

01 cron กับ crontab ต่างกันยังไง?

cron คือ daemon ที่รัน scheduled job, crontab คือไฟล์หรือคำสั่งสำหรับแก้ไข schedule ของ user แต่ละคน

02 ตั้งให้รันทุก 30 วินาทีได้ไหม?

ไม่ได้โดยตรง cron มาตรฐานรองรับละเอียดสุด 1 นาที ถ้าต้องการวินาทีต้องใช้ Quartz หรือเขียนสคริปต์ที่ loop ใน job

03 ทำไม job ไม่รันในเวลาที่คาด?

มักเกิดจาก timezone ไม่ตรง (cron ใช้ UTC), PATH ไม่ถูกใน cron environment, หรือ script มี permission ปัญหา ตรวจ log ของ cron ใน /var/log/cron หรือ syslog

04 ใน Kubernetes CronJob ใช้ syntax เหมือนกันไหม?

ใช่ K8s CronJob ใช้ Linux crontab syntax เดิม แต่ต้องตั้ง timezone ใน spec.timeZone (K8s 1.27+) มิฉะนั้นเป็น UTC

05 เจอ ‘0 0 1 1 *’ แปลว่าอะไร?

เที่ยงคืนของวันที่ 1 มกราคม ทุกปี เทียบเท่า @yearly

อ้างอิง

  1. POSIX crontab(5) — IEEE Std 1003.1-2017
  2. Vixie cron — standard Linux cron implementation
  3. crontab.guru — Visual cron expression editor

เครื่องมือนี้ parse cron expression ในเบราว์เซอร์ของคุณเท่านั้น การทำงานจริงของ cron ขึ้นกับ daemon และ timezone ของ server ควรทดสอบใน environment จริงก่อนใช้

นักพัฒนา

เครื่องมือคำนวณฟรีอื่น ๆ ที่คุณอาจสนใจ

ดูทั้งหมดในหมวดนี้

ต้องการเครื่องมือคำนวณสำหรับธุรกิจของคุณ?

ReSuMeYaDev รับพัฒนาเว็บไซต์ เครื่องมือคำนวณ และระบบภายในตามความต้องการ — Laravel, Vue, Nuxt, Go, Rust