DirectAdmin: ตั้งเวลารัน Script ด้วย Cron Jobs
Cron Job คืออะไร
Cron Job คือคำสั่งที่ระบบรันให้อัตโนมัติตามเวลาที่กำหนด เช่น:
- รัน WordPress cron (
wp-cron.php) ทุก 15 นาที - Backup ฐานข้อมูลทุกคืนตี 2
- Clear cache ทุกชั่วโมง
สร้าง Cron Job ใหม่
- ไปที่ Account Manager → Cron Jobs
- กรอก:
- Minute — นาที (0–59) หรือ * = ทุกนาที
- Hour — ชั่วโมง (0–23) หรือ * = ทุกชั่วโมง
- Day of Month — วันที่ (1–31)
- Month — เดือน (1–12)
- Day of Week — วันในสัปดาห์ (0=Sun … 6=Sat)
- Command — คำสั่งที่จะรัน
- กด Add
ตัวอย่างค่าที่ใช้บ่อย
| ความถี่ | Min | Hour | Day | Mon | DoW |
|---|---|---|---|---|---|
| ทุกนาที | | | | | * |
| ทุก 15 นาที | /15 | | | | * |
| ทุกชั่วโมง | 0 | | | | |
| ทุกวัน ตี 2 | 0 | 2 | | | * |
| ทุกวันจันทร์ 9โมง | 0 | 9 | | | 1 |
ตัวอย่าง Command
รัน PHP script
/usr/local/bin/php /home/username/domains/yourdomain.com/public_html/cron.php
รัน WordPress cron
cd /home/username/domains/yourdomain.com/public_html && /usr/local/bin/php wp-cron.php
Backup ฐานข้อมูล
/usr/bin/mysqldump -u user -ppassword dbname | gzip > /home/username/backups/db-$(date +\%Y\%m\%d).sql.gz
สัญลักษณ์%ในคำสั่ง cron ต้อง escape เป็น\%
ปิด output email (ไม่ให้ส่งเมลทุกครั้งที่รัน)
ต่อท้าย command:
... > /dev/null 2>&1
หรือใส่อีเมลของคุณในช่อง Cron E-mail เพื่อรับ output ทุกครั้ง (เหมาะกับช่วงทดสอบ)
ตรวจสอบว่า Cron รันจริง
ใส่ log ใน script เช่น
file_put_contents(__DIR__.'/cron.log', date('Y-m-d H:i:s').PHP_EOL, FILE_APPEND);
แล้วเปิด cron.log เช็คดู
ลบ Cron Job
ไปที่หน้า Cron Jobs → กด Delete ที่บรรทัดที่ต้องการ
บทความนี้มีประโยชน์ไหม?