วิธีสร้างนิพจน์ cron

· 4 นาทีในการอ่าน

นิพจน์ cron เป็นวิธีมาตรฐานในการกำหนดตารางเวลาที่ทำซ้ำได้บน Linux แพลตฟอร์มคลาวด์ ไปป์ไลน์ CI/CD และตัวกำหนดเวลางาน ไวยากรณ์กะทัดรัดแต่ไม่ตรงตัวมากนัก — เครื่องมือสร้างแบบภาพแสดงให้เห็นว่างานของคุณจะทำงานเมื่อใด

ไวยากรณ์ cron

นิพจน์ cron มี 5 ฟิลด์:

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

ตารางเวลา cron ที่พบบ่อย

ตารางเวลา นิพจน์ ความหมาย
ทุกนาที * * * * * ทำงานทุก 60 วินาที
ทุก 5 นาที */5 * * * * ที่ :00, :05, :10, :15...
ทุกชั่วโมง 0 * * * * ที่ต้นชั่วโมงทุกชั่วโมง
ทุกวันเที่ยงคืน 0 0 * * * ครั้งเดียวต่อวันเวลา 00:00
ทุกวันเวลา 9 โมงเช้า 0 9 * * * ครั้งเดียวต่อวันเวลา 09:00
ทุกวันจันทร์ 8 โมงเช้า 0 8 * * 1 รายสัปดาห์วันจันทร์
วันที่ 1 ของทุกเดือน 0 0 1 * * รายเดือนเที่ยงคืนวันที่ 1
วันทำการเวลา 18:00 0 18 * * 1-5 วันจันทร์ถึงวันศุกร์

วิธีสร้างนิพจน์ cron

  1. กำหนดตารางเวลาของคุณ — ใช้การควบคุมแบบภาพเพื่อเลือกค่าของนาที ชั่วโมง วัน เดือน และวันของสัปดาห์ หรือเริ่มจากพรีเซ็ตเช่น « ทุกชั่วโมง » หรือ « ทุกวันเที่ยงคืน »
  2. ดูตัวอย่างการดำเนินการ — ตัวสร้างแสดงการดำเนินการ 5 ครั้งถัดไปเพื่อตรวจสอบว่าตารางเวลาถูกต้อง
  3. คัดลอกนิพจน์ — วางลงใน crontab ของคุณ การกำหนดค่า CI/CD หรือตัวกำหนดเวลาคลาวด์

อักขระพิเศษ

อักขระ ความหมาย ตัวอย่าง
* ทุกค่า * * * * * = ทุกนาที
*/n ทุกๆ n */15 * * * * = ทุก 15 นาที
, หลายค่า 0 8,12,18 * * * = 8 น. เที่ยง 18 น.
- ช่วง 0 9-17 * * * = ทุกชั่วโมงตั้งแต่ 9 ถึง 17 น.

เคล็ดลับ

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

รูปแบบของนิพจน์ cron คืออะไร?

นิพจน์ cron มาตรฐานมี 5 ฟิลด์ที่คั่นด้วยช่องว่าง แสดงนาที (0-59) ชั่วโมง (0-23) วันของเดือน (1-31) เดือน (1-12) และวันของสัปดาห์ (0-6 โดย 0 คือวันอาทิตย์) เครื่องหมายดอกจัน (*) หมายถึง « ทุก » ค่าสำหรับฟิลด์นั้น

*/5 หมายความว่าอย่างไรใน cron?

ไวยากรณ์ */5 หมายถึง « ทุกๆ 5 » ในฟิลด์นาที */5 หมายถึงทุก 5 นาที (0, 5, 10, 15...) ในฟิลด์ชั่วโมง */5 หมายถึงทุก 5 ชั่วโมง ทำงานในฟิลด์ใดก็ได้

นิพจน์ cron เหมือนกันในทุกแพลตฟอร์มหรือไม่?

รูปแบบ 5 ฟิลด์เป็นมาตรฐานบน Linux cron, AWS EventBridge, GitHub Actions และระบบกำหนดเวลาส่วนใหญ่ บางแพลตฟอร์มเพิ่มฟิลด์ที่ 6 สำหรับวินาทีหรือปี ตรวจสอบเอกสารของแพลตฟอร์มของคุณ

ฉันจะกำหนดเวลาสำหรับวันสุดท้ายของเดือนได้อย่างไร?

cron มาตรฐานไม่มีคีย์เวิร์ด « วันสุดท้าย » ใช้วิธีอ้อมเช่นการดำเนินการรายวันพร้อมการตรวจสอบวันที่ในสคริปต์ของคุณ หรือใช้ส่วนขยายเฉพาะแพลตฟอร์ม (AWS EventBridge รองรับ L สำหรับ « last »)