สร้าง Crontab Cron job เพื่อรัน php ตามเวลาที่ต้องการ

Crontab เป็นโปรแกรมหนึ่งบน Linux ทุกสกุลที่มีเครื่องมือนี้ให้ใช้ โดยไว้สำหรับทำให้เรียกโปรแกรม หรือ command อื่นๆ ทำงานอัตโนมัตตามเวลา ความถึ่ที่เราต้องการได้ เช่นโปรแกรมเทียบเวลาทุกวัน หรือ ทำโปรแกรม backup ไฟล์ทุกๆวันไว้ว่าจะเขียนด้วย shell หรือ python หรือ php ก็สามารถใช้คู่กับ crontab ได้


Crontab syntax :-

* * * * * command to be executed

รูปแบบทั่วไป
# m h dom mon dow command
โดย จะอธิบายไว้ด้านล่าง
- - - - -
| | | | |
| | | | +----- dow วันในสัปดาห์มีค่าเป็วเลขจาก (0 - 6) ( โดยนับ 0 เป็นวันอาทิตย์)
| | | +------- mon เดือน (1 - 12)
| | +--------- dom วันในเดือน (1 - 31)
| +-----------  h ชัวโมง (0 - 23)
+------------- m นาที (0 - 59)  ถ้าต้องการระยะเวลาน้อยกว่า 1 นาที ให้ใส่เป็นเศษส่วนด้วยนี้ เช่น ทุกเครื่องนาที 1/2

แก้ไขไฟล์ crontab ด้วย vi
ก่อนเพิ่มงานเข้าไปใน crontab ลองใช้ คำสั่ง crontab -l เพื่มดูว่ามีงานอะไรอยู่บ้างแล้ว
เพิ่มงาน เข้าไปใน crontab
พิมพ์

crontab -e 

ระบบจะเปิด editor ประจำตัวของระบบขึ้นมา ผมยกตัวอย่างใน FreeBSD
จะใช้ โปรแกรม vi ในการแก้ไขไฟล์นี้
กด i เพิ่ม เพิ่มงาน ตาม syntax ข้างบน
เช่น ผมต้องการให้รัน ไฟล์ https://www.mindphp.com/mindphp.php ทุก นาที
ก็ใช้คำสั่ง

* * * * * fetch http://www.mindphp.com/mindphp.php 


หรือ รัน ทุกๆ วัน เวลา ตี

4 0 4 * * * fetch http://www.mindphp.com/mindphp.php


เสร็จแล้ว กดปุ่ม Esc ตามด้วย :wq เพื่อ save และออกจากโปรแกรม vi
ลองเช็คว่า ที่เรากำหนดไป ทำงานหรือเปล่า check log จาก

tail -g /var/log/cron 

ดูว่ามี process หรือไม่

fetch เป็นโปรแกรม ดึงไฟล์ (เอามาให้มันเรียกไฟล์ใน Server เราเอง)
หรือจะใช้ ให้ php รัน แบบ command ก็ได้
เช่น

0 4 * * * /usr/local/bin/php /home/mindphp/www/mindphp.com

จะเห็นว่า Cron บน Linux มีประโยชน์มากๆ สำหรับการตั้งโปรแกรมให้ทำงานซ้ำๆ นอกจากนี้บน Windows ก็มีต่อเพิ่มเติมได้ที่นี่ การตั้งค่า Task Scheduler ให้โปรแกรมทำงานอัตโนมัติ ทำงานซ้ำๆตามเวลาที่กำหนด

สำหรับต้องการใช้ทำงานในความถี่หน้อยกว่า 1 นาที่ เราสามารถใช้สัดส่วนได้ เช่นทุก 30 วินาที่ ใช้ */2

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
โดย witsarutt000 พฤ 14 มี.ค. 2024 4:07 pm บอร์ด SQL Knowledge
1
166
พฤ 14 มี.ค. 2024 5:44 pm โดย Sirayu View Topic SQL JOIN: การรวมข้อมูลจากหลายตารางในฐานข้อมูล
PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
โดย witsarutt000 พฤ 14 มี.ค. 2024 11:17 am บอร์ด PHP Knowledge
0
125
พฤ 14 มี.ค. 2024 11:17 am โดย witsarutt000 View Topic PHP การเปลี่ยนแปลงที่สร้างปรากฏการณ์ในโลกของเว็บ
ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
โดย Thanavat_n พ 13 มี.ค. 2024 11:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
270
พ 13 มี.ค. 2024 1:34 pm โดย Thanavat_n View Topic ปัญหา Harddisk ขึ้น 100% เวลาเซฟไฟล์ หรือภาพ จะค้่างที่หน้าแท๊บ Expolorer
ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
โดย @Foretoday อ 12 มี.ค. 2024 1:46 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
184
อ 12 มี.ค. 2024 1:46 pm โดย @Foretoday View Topic ตู้รองเท้า ไอเท็มวิเศษช่วยจัดระเบียบคอลเลกชันรองเท้าคู่โปรด
แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
โดย witsarutt000 จ 11 มี.ค. 2024 6:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
142
จ 11 มี.ค. 2024 6:14 pm โดย witsarutt000 View Topic แนะนำสถานที่น่าเที่ยวในจังหวัดชุมพรพร้อมวิธีการเดินทาง
ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
โดย mindphp อ 10 มี.ค. 2024 4:36 am บอร์ด Linux - Web Server
0
239
อ 10 มี.ค. 2024 4:36 am โดย mindphp View Topic ย้าย VM ข้าม Host ด้วย scp กรณีศึกษา Vmware ESXI
IP และ vpn (VMware)
โดย ballmykids อ 10 มี.ค. 2024 2:35 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
203
จ 11 มี.ค. 2024 3:19 pm โดย ballmykids View Topic IP และ vpn (VMware)
แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว
โดย Anonymous ศ 08 มี.ค. 2024 7:02 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
166
ศ 08 มี.ค. 2024 8:12 pm โดย mindphp View Topic แบบนี้ต้องทำยังไง ในกรณีที่ Server เดิมเราได้ทำการ Raid 1 กับ HDD 2 ลูกแรกแล้ว