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

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

01cron กับ 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