cPanel: ตั้งเวลารัน Script ด้วย Cron Jobs
Cron Job คืออะไร
Cron Job คือคำสั่งที่ระบบรันให้อัตโนมัติตามเวลาที่กำหนด เช่น:
- รัน WordPress cron (
wp-cron.php) ทุก 15 นาที - Backup ฐานข้อมูลทุกคืนตี 2
- Clear cache ทุกชั่วโมง
สร้าง Cron Job ใหม่
- ไปที่ cPanel Home → Advanced → Cron Jobs
- ใน Common Settings เลือก template เวลาที่ใช้บ่อย เช่น "Every Day" หรือ "Every 15 Minutes" ได้เลย
(ระบบจะกรอกค่า Minute/Hour/Day/Month/Weekday ให้อัตโนมัติ)
- กรอก Command — คำสั่งที่จะรัน
- กด Add New Cron Job
ตัวอย่างค่าที่ใช้บ่อย
| ความถี่ | Min | Hour | Day | Mon | Weekday |
|---|---|---|---|---|---|
| ทุกนาที | | | | | * |
| ทุก 15 นาที | /15 | | | | * |
| ทุกชั่วโมง | 0 | | | | |
| ทุกวัน ตี 2 | 0 | 2 | | | * |
| ทุกวันจันทร์ 9โมง | 0 | 9 | | | 1 |
ตัวอย่าง Command
รัน PHP script
/usr/local/bin/php /home/username/public_html/cron.php
ใช้ which php ใน SSH เพื่อหา path ที่ถูกต้องบน server ของคุณ
รัน WordPress cron
cd /home/username/public_html && /usr/local/bin/php wp-cron.php
Backup ฐานข้อมูล
/usr/bin/mysqldump -u username_dbuser -pMYPASS username_db | gzip > /home/username/backups/db-$(date +\%Y\%m\%d).sql.gz
สัญลักษณ์%ในคำสั่ง cron ต้อง escape เป็น\%
อีเมล Output
cPanel จะส่ง output ของ cron ทาง email — ถ้าไม่ต้องการ ต่อท้าย command ด้วย:
... > /dev/null 2>&1
หรือตั้ง Cron Email ที่ด้านบนของหน้าเพื่อระบุอีเมลรับ 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 ที่บรรทัดที่ต้องการ
บทความนี้มีประโยชน์ไหม?