nicetool.dev logo

แปลความนิพจน์ Cron

ไวยากรณ์ cron มาตรฐาน 5 ฟิลด์ (นาที ชั่วโมง วัน เดือน วันในสัปดาห์) รองรับมาโครเช่น @daily

“ทุก 15 นาที, ในชั่วโมง 9-17, ในวันวันจันทร์-วันศุกร์”

*/15

นาที

0, 15, 30, 45

9-17

ชั่วโมง

9-17

*

วัน (เดือน)

ทุก

*

เดือน

ทุก

1-5

วัน (สัปดาห์)

วันจันทร์-วันศุกร์

ที่ใช้บ่อย
10 ครั้งถัดไป

    ไวยากรณ์

    *
    ค่าใดก็ได้
    ,
    รายการค่า
    -
    ช่วงของค่า
    /
    ค่าขั้น (เช่น */15)

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

    รองรับ @yearly, @monthly, @weekly, @daily, @hourly และใช้ชื่อเช่น MON-FRI และ JAN ได้

    นิพจน์ cron คืออะไร?

    นิพจน์ cron คือข้อความ 5 ฟิลด์ที่กำหนดตารางเวลาซ้ำสำหรับ crontab, Kubernetes CronJob, GitHub Actions และระบบจัดตารางงานอีกมากมาย แต่ละฟิลด์จำกัดเวลาทำงาน ได้แก่ นาที ชั่วโมง วันของเดือน เดือน และวันในสัปดาห์

    คุณสมบัติ

    • • อธิบายตาราง cron ใดก็ได้เป็นภาษาที่เข้าใจง่าย
    • • แยกแต่ละฟิลด์พร้อมค่าที่ขยายแล้ว
    • • เวลาทำงาน 10 ครั้งถัดไปตามเขตเวลาท้องถิ่นหรือ UTC
    • • ค่าที่ตั้งไว้ล่วงหน้าและข้อความแสดงข้อผิดพลาดที่ชัดเจน

    ทำงานแบบออฟไลน์

    การแปลความและคำนวณตารางเวลาทำในเบราว์เซอร์ เคล็ดลับ: เมื่อกำหนดทั้งวันของเดือนและวันในสัปดาห์ cron จะทำงานเมื่ออย่างใดอย่างหนึ่งตรงกัน

    ประมวลผลในเครื่อง 100%

    วิธีใช้ แปลความ Cron

    1. 1

      พิมพ์นิพจน์ cron ห้าช่อง ได้แก่ นาที ชั่วโมง วันที่ในเดือน เดือน และวันในสัปดาห์ รองรับมาโครอย่าง @daily, @hourly และ @weekly ด้วย

    2. 2

      อ่านคำอธิบายภาษาธรรมดาเพื่อยืนยันว่าตารางเวลาตรงกับที่ตั้งใจ เช่น "เวลา 09:00 วันจันทร์ถึงวันศุกร์"

    3. 3

      ดูรายการเวลาที่จะรันครั้งถัดไป ซึ่งแสดงตามเขตเวลาของคุณ ทำให้รู้แน่ชัดว่างานจะทำงานเมื่อใด

    4. 4

      ใช้ค่าตั้งต้นและตารางไวยากรณ์เพื่อสร้างตารางเวลาที่ใช้บ่อยได้รวดเร็ว แล้วคัดลอกนิพจน์ไปใส่ crontab, CronJob ของ Kubernetes, GitHub Actions หรือระบบตั้งเวลาของคุณ

    ตัวอย่างการใช้งานจริง

    สำรองข้อมูลทุกคืน

    0 2 * * * รันทุกวันเวลา 02:00 ซึ่งเป็นช่วงเงียบเหมาะกับการ dump ฐานข้อมูล ดูเวลารันถัดไปเพื่อไม่ให้ชนกับงานหนักอื่น

    เฉพาะเวลาทำการ

    */15 9-17 * * 1-5 รันทุก 15 นาทีตั้งแต่ 09:00 ถึง 17:45 วันจันทร์ถึงศุกร์ เหมาะกับการเรียก API ของคู่ค้าในเวลาทำงาน

    รายงานประจำเดือน

    0 8 1 * * รันเวลา 08:00 ของวันที่ 1 ทุกเดือน เป็นตารางเวลาที่ใช้บ่อยสำหรับใบแจ้งหนี้หรืออีเมลรายงานการใช้งาน

    ตารางเวลาของ CI

    trigger แบบ schedule ของ GitHub Actions ใช้ห้าช่องเหมือนกันและรันตามเวลา UTC เสมอ เทียบเวลารันถัดไปกับเวลาไทย (UTC+7) เพื่อป้องกันความสับสน

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

    ห้าช่องหมายถึงอะไร?+

    ตามลำดับคือ นาที (0-59) ชั่วโมง (0-23) วันที่ในเดือน (1-31) เดือน (1-12) และวันในสัปดาห์ (0-6 โดย 0 คือวันอาทิตย์) เครื่องหมายดอกจันหมายถึง "ทุกค่า"

    */15 หมายถึงอะไร?+

    คือค่าขั้น หมายถึงทุก ๆ 15 หน่วยของช่องนั้น */15 ในช่องนาทีจะรันที่นาที 0, 15, 30 และ 45 ส่วน 10-50/20 จะรันที่นาที 10, 30 และ 50

    ทำไมงานรันหลายวันกว่าที่คาด?+

    เมื่อจำกัดทั้งวันที่ในเดือนและวันในสัปดาห์ cron มาตรฐานจะรันเมื่อเงื่อนไขใดเงื่อนไขหนึ่งตรง ไม่ใช่ทั้งสอง 0 0 1 * 1 จึงรันวันที่ 1 ของเดือนและทุกวันจันทร์

    cron ใช้เขตเวลาใด?+

    crontab แบบดั้งเดิมใช้เขตเวลาของเซิร์ฟเวอร์ ระบบตั้งเวลาบนคลาวด์หลายตัวและ GitHub Actions ใช้ UTC ส่วน Kubernetes ให้กำหนด timeZone ใน CronJob ได้ ควรตรวจสอบเสมอว่างานรันที่ใด