เครื่องสร้างนิพจน์ Cron

0-59

0-23

1-31

1-12

0-7 (0,7=อา.)

ถัดไป

ไวยากรณ์ของ cron นั้นกระชับและเขียนผิดได้ง่าย: 0 */6 * * * คือการรันทุก 6 ชั่วโมง แต่ */6 0 * * * จะรันทั้งหมด 10 ครั้ง เฉพาะในชั่วโมงแรกหลังเที่ยงคืนเท่านั้น เครื่องมือนี้ให้คุณเลือกตารางเวลาแบบเห็นภาพ (เช่น ทุก 15 นาที, วันธรรมดาเวลา 09.00 น., วันที่ 1 ของทุกเดือน) แล้วแสดงนิพจน์ที่ถูกต้อง พร้อมคำอธิบายความหมายด้วยภาษาที่อ่านเข้าใจง่าย

วิธีการสร้างสูตร Cron

  1. 1

    เลือกพรีเซ็ตหรือกรอกฟิลด์เอง

    ทุกนาที ทุกชั่วโมง ทุกวันตอนเที่ยงคืน ทุกสัปดาห์ในวันอาทิตย์ และวันที่ 1 ของทุกเดือนเลือกได้ด้วยคลิกเดียว สำหรับกรณีอื่น ๆ ให้กรอกค่าใน 5 ช่องโดยตรง

  2. 2

    ปรับแต่งตารางเวลา

    ระบุได้อย่างละเอียด ทั้งนาที ชั่วโมง วันที่ในเดือน เดือน และวันในสัปดาห์ รองรับทั้งช่วง (9-17), รายการ (1,15) และสเต็ป (*/6)

  3. 3

    อ่านนิพจน์

    เครื่องมือจะแสดงรูปแบบ cron มาตรฐานแบบ 5 ฟิลด์เสมอ พร้อมคำอธิบายความหมายของตารางเวลาด้วยภาษาที่อ่านเข้าใจง่าย

  4. 4

    ตรวจสอบสำเนียง

    สำเนียงแต่ละแบบต่างกัน (Quartz, AWS EventBridge, Kubernetes) ตรวจสอบว่านิพจน์ตรงกับสิ่งที่ตัวกำหนดเวลาของคุณต้องการ

ห้าฟิลด์

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── วันในสัปดาห์ (0-6, อาทิตย์=0, หรือ SUN-SAT)
│  │  │  └───── เดือน (1-12, หรือ JAN-DEC)
│  │  └──────── วันที่ในเดือน (1-31)
│  └─────────── ชั่วโมง (0-23)
└────────────── นาที (0-59)

แต่ละฟิลด์รองรับค่าต่อไปนี้:

  • ตัวเลขเฉพาะ: 5
  • รายการ: 1,15,30
  • ช่วง: 9-17
  • สเต็ป: */10 (ทุก ๆ 10) หรือ 0-30/5 (ทุก ๆ 5 ตั้งแต่ 0 ถึง 30)
  • ไวลด์การ์ด: * (ทุกค่า)

นิพจน์ที่ใช้บ่อย

ตารางเวลา นิพจน์ Cron
ทุกนาที * * * * *
ทุก 15 นาที */15 * * * *
ทุกชั่วโมงตรง 0 * * * *
ทุก 6 ชั่วโมง 0 */6 * * *
ทุกวันเวลา 02.30 น. 30 2 * * *
ทุกวันธรรมดาเวลา 09.00 น. 0 9 * * 1-5
ทุกวันจันทร์เวลา 08.00 น. 0 8 * * 1
วันที่ 1 ของทุกเดือนเวลา 03.00 น. 0 3 1 * *
ทุก 15 นาที วันธรรมดาเวลา 9-17 น. */15 9-17 * * 1-5
เที่ยงวันของวันที่ 1 และ 15 0 12 1,15 * *
ทุกวันอาทิตย์ตอนเที่ยงคืน 0 0 * * 0

กับดักของวันที่ในเดือน + วันในสัปดาห์

ใน cron มาตรฐาน หากระบุทั้งวันที่ในเดือนและวันในสัปดาห์ (ไม่ใช่ *) งานจะรันเมื่อค่าใดค่าหนึ่งตรงตามเงื่อนไข (เป็น OR ไม่ใช่ AND) 0 0 1 * MON จะรันในวันที่ 1 ของทุกเดือน และ ทุกวันจันทร์ ไม่ใช่เฉพาะเมื่อวันที่ 1 ตรงกับวันจันทร์เท่านั้น

Vixie cron และลินุกซ์ส่วนใหญ่ใช้กฎ OR นี้ ส่วน Quartz (Java) และบางระบบใช้ AND หากไม่แน่ใจ ให้ทดสอบนิพจน์ด้วยการรันแบบทดลอง (dry run) หรืองานทดสอบในตัวกำหนดเวลาของคุณ

ความแตกต่างของสำเนียง

  • cron มาตรฐาน (Linux): 5 ฟิลด์ วันในสัปดาห์ 0-6 (วันอาทิตย์ = 0 หรือ 7)
  • Quartz (Spring, แอป Java): 6-7 ฟิลด์ โดยฟิลด์แรกเป็นวินาที และมีปีแบบไม่บังคับ วันในสัปดาห์ 1-7 (วันอาทิตย์ = 1)
  • AWS EventBridge cron: 6 ฟิลด์ รวมปี วันในสัปดาห์และวันที่ในเดือนต้องไม่ระบุพร้อมกัน (อย่างใดอย่างหนึ่งต้องเป็น ?)
  • GitHub Actions: 5 ฟิลด์มาตรฐาน ช่วงเวลาขั้นต่ำ 5 นาที รองรับเฉพาะ UTC
  • Kubernetes CronJob: 5 ฟิลด์มาตรฐาน ใช้ UTC เป็นค่าเริ่มต้น

ตรวจสอบให้แน่ใจเสมอว่าตัวจัดตารางเวลาของคุณใช้สำเนียงแบบใด

เขตเวลา

cron แบบดั้งเดิมจะทำงานตามเขตเวลาท้องถิ่นของเซิร์ฟเวอร์ ซึ่งสร้างปัญหาอย่างมากในช่วงเปลี่ยนเวลาออมแสง (DST): งานที่ตั้งไว้เวลา 02.30 น. อาจรันสองครั้งหรือไม่รันเลยในวันที่เปลี่ยนเวลา ตัวจัดตารางเวลารุ่นใหม่ (systemd timers, Kubernetes, EventBridge) ให้คุณระบุเขตเวลาได้อย่างชัดเจน ควรใช้ UTC เว้นแต่จะมีเหตุผลที่ดีที่จะไม่ใช้

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

หมายถึงทุก ๆ 5 หน่วยของฟิลด์นั้น โดยเริ่มจาก 0 ในฟิลด์นาที */5 จะรันที่นาทีที่ 0, 5, 10, 15, …, 55 เป็นรูปย่อของ 0,5,10,15,20,25,30,35,40,45,50,55

cron ไม่สามารถแสดงช่วงเวลาตามอำเภอใจที่หารด้วย 60 นาทีหรือ 24 ชั่วโมงไม่ลงตัวได้ สำหรับ 90 นาที ให้ระบุเวลาที่จะรันโดยเฉพาะ เช่น 0 0,9 * * * ร่วมกับบรรทัดเพิ่มเติม หรือเปลี่ยนไปใช้ตัวจัดตารางเวลาที่รองรับช่วงเวลาตามอำเภอใจ เช่น systemd timers หรือ anacron

เที่ยงคืน ลำดับของฟิลด์คือ นาที-ชั่วโมง ดังนั้น 0 0 หมายถึง “นาทีที่ 0 ของชั่วโมงที่ 0” ส่วนเที่ยงวันจะเป็น 0 12 * * *

cron มาตรฐานจะข้ามงานนั้นไป การรันที่พลาดไปจะไม่ลองใหม่ ส่วน Anacron จะรันงานรายวัน รายสัปดาห์ หรือรายเดือนที่พลาดไปในการบูตครั้งถัดไป สำหรับ Kubernetes CronJob มี startingDeadlineSeconds และ concurrencyPolicy สำหรับจัดการกับช่วงเวลาที่พลาดไปอย่างชัดเจน

เครื่องมือที่เกี่ยวข้อง

ตารางอ้างอิง ASCII

ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL

อ้างอิงตัวอักษร HTML

รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ

ตารางอ้างอิงแป้นพิมพ์ลัด

ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux

ตัวลดรูปพีชคณิตบูลีน

ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^

เครื่องสร้างตัวอักษรสุ่ม

สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน

เครื่องมือตรวจสอบหมายเลขโทรศัพท์

ตรวจสอบโครงสร้างหมายเลขตามประเทศ พร้อมดูภูมิภาค ประเภท และรูปแบบ E.164 ระหว่างประเทศ ในประเทศ และ RFC 3966