tigtools

อธิบายนิพจน์ Cron

ป้อนตารางเวลา cron แบบ 5 ฟิลด์เพื่อดูความหมายและเวลาทำงานครั้งถัดไป คำนวณทั้งหมดในเบราว์เซอร์ของคุณ

ทำงานในเบราว์เซอร์ของคุณ ไม่ต้องสมัคร

มี 5 ช่อง ได้แก่ นาที ชั่วโมง วันของเดือน เดือน และวันของสัปดาห์ นอกจากนี้ยังใช้แมโคร เช่น @daily ได้

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

ความหมาย

ทุก 15 นาที, ระหว่าง 09:00 ถึง 17:59, ในวันวันจันทร์ ถึง วันศุกร์.

ช่อง

นาที
*/15
ชั่วโมง
9-17
วันของเดือน
*
เดือน
*
วันของสัปดาห์
1-5
เขตเวลา

การทำงาน 10 ครั้งถัดไป

    วิธีใช้งาน

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

    วิธีการทำงาน

    นิพจน์ cron มาตรฐานที่ใช้กับ crontab บน Linux (Vixie cron และ cronie) รวมถึงตัวจัดตารางเวลาของ CI และบริการโฮสติ้งหลายแห่ง มี 5 ฟิลด์คั่นด้วยช่องว่าง ได้แก่ นาที (0–59), ชั่วโมง (0–23), วันที่ในเดือน (1–31), เดือน (1–12 หรือ JAN–DEC) และวันในสัปดาห์ (0–7 หรือ SUN–SAT โดยทั้ง 0 และ 7 หมายถึงวันอาทิตย์) แต่ละฟิลด์รองรับ * เพื่อหมายถึงทุกค่า, ค่าเดียว, ช่วง เช่น 1-5, รายการ เช่น 1,15,30 และช่วงระยะ เช่น */15 (ทุก ๆ 15 ค่า) หรือ 9-17/2 (ทุก 2 ชั่วโมงตั้งแต่ 9 ถึง 17) ชื่อไม่แยกตัวพิมพ์เล็กและใหญ่ คำย่อ @yearly (หรือ @annually), @monthly, @weekly, @daily (หรือ @midnight) และ @hourly ใช้แทน 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * และ 0 * * * * ตามลำดับ

    ฟิลด์วันที่ในเดือนและวันในสัปดาห์มีกฎที่ทำให้หลายคนเข้าใจผิด หากฟิลด์ใดฟิลด์หนึ่งเริ่มด้วย * วันนั้นต้องตรงกับทั้งสองฟิลด์ หากทั้งสองฟิลด์กำหนดค่าไว้ วันนั้นจะตรงเมื่อเข้าเงื่อนไขของฟิลด์ใดฟิลด์หนึ่ง เช่น 0 0 13 * 5 จะทำงานในวันที่ 13 ของทุกเดือนและทุกวันศุกร์ ไม่ใช่เฉพาะวันศุกร์ที่ 13 เนื่องจากพิจารณาว่าฟิลด์เริ่มต้นด้วย * หรือไม่ ช่วงระยะอย่าง */2 จึงถือว่าไม่ได้จำกัดค่าเช่นกัน พฤติกรรมนี้ตรงกับ Vixie cron และ cronie แต่ตัวจัดตารางเวลาบางตัวอาจทำงานต่างออกไป

    เวลาทำงานครั้งถัดไปคำนวณตามเขตเวลาของเบราว์เซอร์ หรือ UTC ซึ่งเป็นเขตเวลาที่เซิร์ฟเวอร์และตัวจัดตารางเวลาบนคลาวด์ส่วนใหญ่ใช้ ตัว cron เองจะใช้เขตเวลาของเครื่องที่ทำงานอยู่ ในช่วงเปลี่ยนเวลาออมแสง cron daemon จริงอาจทำงานต่างกัน เครื่องมือนี้จะไม่นับเวลาท้องถิ่นที่ไม่มีอยู่เมื่อปรับนาฬิกาไปข้างหน้า และจะแสดงชั่วโมงที่เกิดซ้ำเพียงครั้งเดียว ไม่รองรับไวยากรณ์เพิ่มเติม ได้แก่ นิพจน์ Quartz แบบ 6 หรือ 7 ฟิลด์ที่มีวินาทีหรือปี และอักขระพิเศษ ?, L, W และ #

    ตัวอย่าง

    ตรวจสอบสถานะระบบในเวลาทำการ

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

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

    30 2 * * * ทำงานทุกวันที่ 02:30 หากเซิร์ฟเวอร์ใช้ UTC และคุณอยู่ในนิวยอร์ก รายการรอบถัดไปในโหมด UTC จะแสดงเวลาที่เซิร์ฟเวอร์ใช้จริง

    กับดักของฟิลด์วัน

    0 9 1 * 1 ดูเหมือนจะหมายถึง “9:00 ของวันแรกของเดือน หากวันนั้นเป็นวันจันทร์” แต่จริง ๆ แล้วจะทำงานเวลา 09:00 ในวันที่ 1 ของทุกเดือน และทุกวันจันทร์ หากต้องการให้ทำงานเฉพาะวันจันทร์แรกของเดือน ให้ตั้งเวลาเป็น 0 9 1-7 * * แล้วตรวจสอบวันในสัปดาห์ภายในสคริปต์

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

    */5 ใน cron หมายถึงอะไร?

    หมายถึงทุก ๆ ค่าลำดับที่ 5 ของฟิลด์ โดยเริ่มจากค่าต่ำสุด ในฟิลด์นาที */5 จะทำงานที่นาที 0, 5, 10 … 55 ส่วนในฟิลด์ชั่วโมง */5 จะทำงานที่ชั่วโมง 0, 5, 10, 15 และ 20 ดังนั้นช่วงจาก 20:00 ถึงเที่ยงคืนจึงห่างกัน 4 ชั่วโมง ไม่ใช่ 5 ชั่วโมง

    ทำไมงานของฉันจึงทำงานในวันมากกว่าที่คาดไว้?

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

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

    cron จะใช้เขตเวลาของระบบบนเซิร์ฟเวอร์ที่รัน cron daemon เว้นแต่ crontab จะกำหนด CRON_TZ หรือ TZ (รองรับโดย cronie) ตัวจัดตารางเวลาบนคลาวด์มักใช้ UTC เป็นค่าเริ่มต้น ใช้สวิตช์ UTC เพื่อดูเวลาที่เซิร์ฟเวอร์ซึ่งใช้ UTC จะทำงาน

    ใช้ฟิลด์วินาทีหรือปีได้ไหม?

    ไม่ได้ใน cron มาตรฐาน ซึ่งมีความละเอียดระดับ 1 นาทีและใช้ 5 ฟิลด์ รูปแบบ 6 หรือ 7 ฟิลด์ที่มีวินาทีและปีเป็นรูปแบบของ Quartz, Spring และไลบรารีลักษณะเดียวกัน ซึ่งเครื่องมือนี้ไม่รองรับ

    วันอาทิตย์คือ 0 หรือ 7?

    ได้ทั้งคู่ ในฟิลด์วันในสัปดาห์ 0 และ 7 หมายถึงวันอาทิตย์, 1 คือวันจันทร์ และ 6 คือวันเสาร์ นอกจากนี้ยังเขียนชื่อย่อสามตัวอักษรตั้งแต่ SUN ถึง SAT ได้ด้วย

    ความเป็นส่วนตัว

    ระบบจะแปลความหมายนิพจน์และคำนวณเวลาทำงานในเบราว์เซอร์ของคุณ ข้อมูลที่ป้อนไม่ถูกอัปโหลด จัดเก็บ หรือนำไปรวมในข้อมูลวิเคราะห์