สร้าง 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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ลดหย่อนภาษีได้ปี 67 สูงสุด 50,000 มีเงือนไขอย่างไรมาดุ
โดย Anonymous อ 31 ธ.ค. 2023 10:37 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
428
อ 31 ธ.ค. 2023 10:37 am โดย บุคคลทั่วไป View Topic ลดหย่อนภาษีได้ปี 67 สูงสุด 50,000 มีเงือนไขอย่างไรมาดุ
เซ็นเซอร์ตรวจจับเสียง เอาไปใช้ทำอะไรได้บ้าง ทำโปรเจ็ค IOT
โดย Anonymous ส 30 ธ.ค. 2023 4:28 am บอร์ด IOT - Internet of things
2
809
ส 30 ธ.ค. 2023 10:48 pm โดย mindphp View Topic เซ็นเซอร์ตรวจจับเสียง เอาไปใช้ทำอะไรได้บ้าง ทำโปรเจ็ค IOT
มีเว็บที่เปิดเป็น localhost ใช้งานได้อยู่ มีวิธีไหนบ้างครับ ที่จะทำให้คนเข้าถึงออนไลน์ได้
โดย Anonymous ส 30 ธ.ค. 2023 4:18 am บอร์ด Programming - PHP
1
389
ส 30 ธ.ค. 2023 10:47 pm โดย mindphp View Topic มีเว็บที่เปิดเป็น localhost ใช้งานได้อยู่ มีวิธีไหนบ้างครับ ที่จะทำให้คนเข้าถึงออนไลน์ได้
ในฐานะผู้ดูแลระบบ (System Administrator) ก่อนเข้าช่วงหยุดยาว เตรียมตัวแบบนี้เพื่อให้หยุดได้อย่างไร้กังวน
โดย mindphp พฤ 28 ธ.ค. 2023 12:20 pm บอร์ด Linux - Web Server
0
609
พฤ 28 ธ.ค. 2023 12:20 pm โดย mindphp View Topic ในฐานะผู้ดูแลระบบ (System Administrator) ก่อนเข้าช่วงหยุดยาว เตรียมตัวแบบนี้เพื่อให้หยุดได้อย่างไร้กังวน
แก้ปัญหา Google Chrome เข้าหน้าเว็บไม่ได้ขึ้น ERROR SSL Key แต่ใช้ browser ตัวอื่นเข้าได้หมด
โดย mindphp พฤ 28 ธ.ค. 2023 7:11 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
362
พฤ 28 ธ.ค. 2023 7:11 am โดย mindphp View Topic แก้ปัญหา Google Chrome เข้าหน้าเว็บไม่ได้ขึ้น ERROR SSL Key แต่ใช้ browser ตัวอื่นเข้าได้หมด
ทำไมการย้ายโดเมนมักแนะนำให้ดำเนินการก่อนหมดอายุ 30 วัน มาดูรายละเอียดกัน Domain Tranfer มีกี่ขั้นตอน
โดย mindphp พฤ 28 ธ.ค. 2023 6:54 am บอร์ด Microsoft Office Knowledge & line & Etc
0
450
พฤ 28 ธ.ค. 2023 6:54 am โดย mindphp View Topic ทำไมการย้ายโดเมนมักแนะนำให้ดำเนินการก่อนหมดอายุ 30 วัน มาดูรายละเอียดกัน Domain Tranfer มีกี่ขั้นตอน
วิธีแชร์ภาพจาก Canva ไปที่ Facebook Page
โดย vibeday พฤ 28 ธ.ค. 2023 12:42 am บอร์ด Microsoft Office Knowledge & line & Etc
0
373
พฤ 28 ธ.ค. 2023 12:42 am โดย vibeday View Topic วิธีแชร์ภาพจาก Canva ไปที่ Facebook Page
โฆษณา LINE ทางเลือกใหม่ของแบรนด์ในยุคออนไลน์
โดย admeadme พ 27 ธ.ค. 2023 3:38 pm บอร์ด Share Knowledge
0
402
พ 27 ธ.ค. 2023 3:38 pm โดย admeadme View Topic โฆษณา LINE ทางเลือกใหม่ของแบรนด์ในยุคออนไลน์