ตัวสร้างและอธิบาย Cron Expression
สร้างตาราง crontab ด้วยการคลิก หรือวาง expression ที่มีอยู่ คุณจะได้คำอธิบายที่อ่านเข้าใจง่าย การตรวจสอบรายฟิลด์ และเวลารัน 10 ครั้งถัดไปในเขตเวลาของคุณ
ทำงานในเบราว์เซอร์ไม่ต้องสมัครไม่มีการอัปโหลด
ตัวสร้างแบบภาพ
10 รอบถัดไป
วิธีใช้ ตัวสร้าง Cron Expression
- พิมพ์ cron expression เช่น
*/15 * * * *หรือคลิกค่าที่ตั้งไว้ - อ่านคำอธิบายเพื่อยืนยันว่าทำงานตามที่คาดไว้ ฟิลด์ที่ไม่ถูกต้องจะถูกไฮไลต์พร้อมเหตุผล
- ใช้แท็บ ตัวสร้างแบบภาพ เพื่อตั้งค่านาที ชั่วโมง วันที่ของเดือน เดือน และวันในสัปดาห์ ด้วย ทุก, ทุก N, ระบุค่า หรือ ช่วง
- ตรวจดูเวลารัน 10 ครั้งถัดไป และเลือกเขตเวลาของเซิร์ฟเวอร์หากต่างจากของคุณ
- คัดลอก 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 รองรับวินาทีหรือไม่?
วันอาทิตย์คือ 0 หรือ 7?
SUN หรือ MON-FRIทำไมงานของฉันรันหลายวันกว่าที่คาดไว้?
* เพื่อใช้เงื่อนไขของอีกฟิลด์เท่านั้น