ผลลัพธ์ Cron
* * * * *
เลือกค่าแล้วกดสร้างเพื่อดูคำสั่ง
เลือกช่วงเวลา แล้วระบบจะสร้าง Cron Expression ให้พร้อมใช้งานทันที
ผลลัพธ์ Cron
* * * * *
เลือกค่าแล้วกดสร้างเพื่อดูคำสั่ง
Cron คือระบบตั้งเวลาให้โปรแกรมทำงานอัตโนมัติที่ใช้กันมานานกว่า 40 ปีในระบบ Unix/Linux ชื่อ "Cron" มาจากคำกรีกว่า Chronos (เทพแห่งเวลา) เครื่องมือนี้ช่วยให้คุณสร้าง cron expression ที่ถูกต้องโดยไม่ต้องจำ syntax ยากๆ เพียงเลือกช่วงเวลาที่ต้องการแล้วระบบจะสร้าง expression ให้พร้อมใช้งานทันที
Cron expression มาตรฐานประกอบด้วย 5 ฟิลด์คั่นด้วยช่องว่าง:
┌───────────── นาที (0–59) │ ┌─────────── ชั่วโมง (0–23) │ │ ┌───────── วันที่ในเดือน (1–31) │ │ │ ┌─────── เดือน (1–12) │ │ │ │ ┌───── วันในสัปดาห์ (0–7, 0 และ 7 คืออาทิตย์) │ │ │ │ │ * * * * *
อักขระพิเศษที่ใช้ใน cron expression:
* = ทุกค่า (ทุกนาที, ทุกชั่วโมง ฯลฯ), = ระบุหลายค่า เช่น 1,15,30- = ช่วงค่า เช่น 1-5 (จันทร์ถึงศุกร์)/ = ทุกๆ เช่น */5 คือทุก 5 หน่วย0 8 * * * — ทุกวัน เวลา 08:00 น. (เช่น ส่งรายงานประจำวัน)0 8 * * 1-5 — ทุกวันจันทร์–ศุกร์ เวลา 08:00 น. (เฉพาะวันทำงาน)0 0 1 * * — วันที่ 1 ของทุกเดือน เวลาเที่ยงคืน (เช่น billing cycle)*/15 * * * * — ทุก 15 นาที (เช่น sync ข้อมูล, health check)0 2 * * 0 — ทุกวันอาทิตย์ เวลา 02:00 น. (เช่น weekly backup)30 23 * * 1-5 — ทุกวันทำงาน เวลา 23:30 น. (เช่น close-of-day report)0 */4 * * * — ทุก 4 ชั่วโมง (เช่น refresh cache)0 9 1,15 * * — วันที่ 1 และ 15 ของทุกเดือน เวลา 09:00 น. (เช่น payroll)Cron expression ที่สร้างจากเครื่องมือนี้สามารถนำไปใช้ได้กับหลาย platform:
crontab -e แล้วเพิ่มบรรทัด เช่น 0 8 * * * /home/user/scripts/report.shon.schedule.cron เช่น - cron: '0 8 * * 1' (ใช้เวลา UTC)cron(0 8 * * ? *)spec.schedule ของ CronJob manifest->cron('0 8 * * *') ใน app/Console/Kernel.phpปัญหาที่พบบ่อยที่สุดเกี่ยวกับ cron คือเรื่อง timezone โดยเฉพาะเมื่อ deploy บน cloud:
date หรือ timedatectl0 1 * * *Cron job คือระบบตั้งเวลาให้โปรแกรมหรือคำสั่งทำงานอัตโนมัติตามตารางเวลาที่กำหนด บน Linux/macOS ใช้ daemon ชื่อ crond ตรวจสอบ crontab ทุกนาทีและรันงานที่ถึงเวลา ตัวอย่างการใช้งาน เช่น backup ฐานข้อมูลทุกวัน, ส่ง email digest รายสัปดาห์, เคลียร์ log files และอัปเดตข้อมูลตามรอบเวลา
Cron expression มี 5 ฟิลด์ เรียงจากซ้ายไปขวา ได้แก่ นาที (0–59), ชั่วโมง (0–23), วันที่ (1–31), เดือน (1–12) และวันในสัปดาห์ (0–7 โดย 0 และ 7 คืออาทิตย์) เช่น 30 8 * * 1-5 หมายถึง ทำงาน 08:30 ทุกวันจันทร์–ศุกร์ ใช้ * แทนค่า "ทุกค่า" และใช้ , เพื่อระบุหลายค่า เช่น 1,15
สำหรับทำงานทุกวันทำงาน ใช้ฟิลด์วันในสัปดาห์เป็น 1-5 เช่น ต้องการรันทุกวันจันทร์–ศุกร์ เวลา 09:00 ให้เขียนเป็น 0 9 * * 1-5 ถ้าต้องการทุก 30 นาทีในชั่วโมงทำงาน เขียน 0,30 8-17 * * 1-5 และถ้าต้องการรันทุกวันทำงานตอนเที่ยงคืน เขียน 0 0 * * 1-5 สามารถตรวจสอบและสร้าง cron expression ได้ด้วยเครื่องมือนี้
Cron expression คือสตริงที่ระบุตารางเวลา เช่น 0 8 * * * ส่วน crontab (cron table) คือไฟล์ที่เก็บรายการ cron job ทั้งหมด ประกอบด้วย cron expression + คำสั่งที่ต้องรัน เช่น 0 8 * * * /home/user/backup.sh ใช้คำสั่ง crontab -e เพื่อแก้ไข และ crontab -l เพื่อดูรายการ cron job ที่มีอยู่ในระบบ