ตัวสร้างและอธิบาย Cron Expression

สร้างตาราง crontab ด้วยการคลิก หรือวาง expression ที่มีอยู่ คุณจะได้คำอธิบายที่อ่านเข้าใจง่าย การตรวจสอบรายฟิลด์ และเวลารัน 10 ครั้งถัดไปในเขตเวลาของคุณ

ทำงานในเบราว์เซอร์ไม่ต้องสมัครไม่มีการอัปโหลด

นาทีชั่วโมงวัน (เดือน)เดือนวัน (สัปดาห์)

ตัวสร้างแบบภาพ

10 รอบถัดไป

    วิธีใช้ ตัวสร้าง Cron Expression

    1. พิมพ์ cron expression เช่น */15 * * * * หรือคลิกค่าที่ตั้งไว้
    2. อ่านคำอธิบายเพื่อยืนยันว่าทำงานตามที่คาดไว้ ฟิลด์ที่ไม่ถูกต้องจะถูกไฮไลต์พร้อมเหตุผล
    3. ใช้แท็บ ตัวสร้างแบบภาพ เพื่อตั้งค่านาที ชั่วโมง วันที่ของเดือน เดือน และวันในสัปดาห์ ด้วย ทุก, ทุก N, ระบุค่า หรือ ช่วง
    4. ตรวจดูเวลารัน 10 ครั้งถัดไป และเลือกเขตเวลาของเซิร์ฟเวอร์หากต่างจากของคุณ
    5. คัดลอก expression ไปใส่ใน crontab, Kubernetes CronJob, schedule ของ GitHub Actions หรือ config ของ CI

    ไวยากรณ์ cron ในหนึ่งนาที

    cron expression มาตรฐานมีห้าฟิลด์คั่นด้วยช่องว่าง:

    ┌───────────── minute (0-59)
    │ ┌─────────── hour (0-23)
    │ │ ┌───────── day of month (1-31)
    │ │ │ ┌─────── month (1-12 or JAN-DEC)
    │ │ │ │ ┌───── day of week (0-7 or SUN-SAT, 0 and 7 are Sunday)
    │ │ │ │ │
    * * * * *  command
    สัญลักษณ์ความหมายตัวอย่าง
    *ทุกค่า* * * * * ทุกนาที
    ,รายการ0 9,17 * * * เวลา 09:00 และ 17:00
    -ช่วง0 9 * * 1-5 วันธรรมดาเวลา 09:00
    /ขั้น (step)*/10 * * * * ทุก 10 นาที
    @dailyมาโครเหมือนกับ 0 0 * * * และยังมี @hourly, @weekly, @monthly, @yearly, @reboot

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

    เมื่อจำกัดฟิลด์วัน ทั้งสอง ฟิลด์ (ไม่มีฟิลด์ใดขึ้นต้นด้วย *) cron จะรันเมื่อฟิลด์ ใดฟิลด์หนึ่ง ตรง ดังนั้น 0 0 13 * 5 จะรันทุกวันที่ 13 และ ทุกวันศุกร์ ไม่ใช่เฉพาะวันศุกร์ที่ 13 ตัวสร้างนี้ทำตามกฎของ Vixie cron และคำอธิบายจะใช้คำว่า “หรือ” เพื่อให้คุณสังเกตเห็น

    เขตเวลาและเวลาออมแสง

    cron ใช้เขตเวลาท้องถิ่นของเซิร์ฟเวอร์ เว้นแต่จะตั้งค่าไว้เป็นอย่างอื่น (CRON_TZ= ใน cron บางตัว, timeZone ใน Kubernetes CronJob ส่วน GitHub Actions ใช้ UTC เสมอ) ให้เลือกเขตเวลานั้นในตัวอย่างการรัน งานที่ตั้งไว้ในช่วงเวลาที่ถูกข้ามของเวลาออมแสง (เช่น 02:30 ในคืนที่เลื่อนเวลาเร็วขึ้น) จะไม่แสดงในตัวอย่าง เพราะเวลาท้องถิ่นนั้นไม่มีอยู่จริง

    ตารางเวลาที่ใช้บ่อย

    • */5 * * * *: ทุก 5 นาที
    • 0 */2 * * *: ทุก 2 ชั่วโมง ตรงต้นชั่วโมง
    • 0 9 * * 1-5: 09:00 ในวันธรรมดา
    • 0 0 1 * *: เที่ยงคืนของวันแรกของทุกเดือน
    • 0 3 * * 0: 03:00 ทุกวันอาทิตย์ ช่วงเวลาสำรองข้อมูลที่นิยม

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

    ตั้ง cron job ให้รันทุก 5 นาทีอย่างไร?
    ใช้ */5 * * * * ขั้น /5 ในฟิลด์นาทีหมายถึงทุก ๆ นาทีที่ 5 เริ่มจาก 0: 00, 05, 10 ไปเรื่อย ๆ
    cron รองรับวินาทีหรือไม่?
    crontab มาตรฐานไม่รองรับ หน่วยที่เล็กที่สุดคือหนึ่งนาที Quartz, Spring และ cloud scheduler บางตัวเพิ่มฟิลด์วินาที (6 หรือ 7 ฟิลด์) เครื่องมือนี้ตรวจสอบรูปแบบมาตรฐาน 5 ฟิลด์ และจะแจ้งเมื่อพบ 6 ฟิลด์
    วันอาทิตย์คือ 0 หรือ 7?
    ทั้งสองค่า ในฟิลด์วันในสัปดาห์ 0 และ 7 หมายถึงวันอาทิตย์ทั้งคู่ และคุณยังเขียนเป็นชื่อได้ เช่น SUN หรือ MON-FRI
    ทำไมงานของฉันรันหลายวันกว่าที่คาดไว้?
    หากคุณจำกัดทั้งวันที่ของเดือนและวันในสัปดาห์ cron จะรันเมื่อค่าใดค่าหนึ่งตรง ให้ตั้งฟิลด์หนึ่งเป็น * เพื่อใช้เงื่อนไขของอีกฟิลด์เท่านั้น
    เวลารันครั้งถัดไปแสดงเป็นเขตเวลาใด?
    ค่าเริ่มต้นคือเขตเวลาของเบราว์เซอร์คุณ เลือกเขตเวลาของเซิร์ฟเวอร์ (มักเป็น UTC) จากรายการเพื่อดูว่างานจะทำงานเมื่อไรบนเซิร์ฟเวอร์นั้น

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