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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แนะนำตัวอย่าง Keyword ต่างๆสำหรับใช้ค้นหาเว็บแปลงไฟล์อย่างง่าย
โดย Yabaii123 พฤ 07 ธ.ค. 2023 2:50 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
611
พฤ 07 ธ.ค. 2023 2:50 pm โดย Yabaii123 View Topic แนะนำตัวอย่าง Keyword ต่างๆสำหรับใช้ค้นหาเว็บแปลงไฟล์อย่างง่าย
สอบถามฟังก์ชัน Access::getActions() ใน joomla 5 ใช้ฟังก์ชันตัวไหนแทนครับ
โดย Thanapoom1514 พ 06 ธ.ค. 2023 7:20 pm บอร์ด Joomla Development
1
1026
พ 06 ธ.ค. 2023 8:33 pm โดย mindphp View Topic สอบถามฟังก์ชัน Access::getActions() ใน joomla 5 ใช้ฟังก์ชันตัวไหนแทนครับ
แนะนำการท่องเที่ยวและการเดินทางในจังหวัดเชียงราย
โดย Yabaii123 จ 04 ธ.ค. 2023 4:20 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
6
1160
อ 05 ธ.ค. 2023 10:16 am โดย Yabaii123 View Topic แนะนำการท่องเที่ยวและการเดินทางในจังหวัดเชียงราย
เขียน Python จัดการภาพภาย crop ภาพถ่ายเอาเฉพาะใบหน้า
โดย mindphp ส 02 ธ.ค. 2023 9:18 am บอร์ด Python Knowledge
1
432
ส 02 ธ.ค. 2023 9:54 am โดย mindphp View Topic เขียน Python จัดการภาพภาย crop ภาพถ่ายเอาเฉพาะใบหน้า
แนะนำการใช้ Profiler ของ Joomla เช็คความเร็วของการทำงานของระบบ
โดย Thanapoom1514 ศ 01 ธ.ค. 2023 4:38 pm บอร์ด Joomla Developing Knowledge
0
571
ศ 01 ธ.ค. 2023 4:38 pm โดย Thanapoom1514 View Topic แนะนำการใช้ Profiler ของ Joomla เช็คความเร็วของการทำงานของระบบ
สอบถามการปรับข้อมูลจากตาราง sql
โดย Thanapoom1514 พฤ 30 พ.ย. 2023 5:41 pm บอร์ด Programming - PHP
4
1204
จ 04 ธ.ค. 2023 3:17 pm โดย Thanapoom1514 View Topic สอบถามการปรับข้อมูลจากตาราง sql
สอบถามการตัดขอบพื้นที่ส่วนเกินออกบน Canva
โดย Thanavat_n พฤ 30 พ.ย. 2023 5:16 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
4
881
พฤ 21 ธ.ค. 2023 5:37 pm โดย GreatBattery View Topic สอบถามการตัดขอบพื้นที่ส่วนเกินออกบน Canva
สอบถามเรื่อง Skype หลุดบ่อย เกิดจากอะไร แก้ยังไงได้บ้าง
โดย Narisara พฤ 30 พ.ย. 2023 4:14 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
4
527
อ 19 ธ.ค. 2023 3:17 pm โดย Narisara View Topic สอบถามเรื่อง Skype หลุดบ่อย เกิดจากอะไร แก้ยังไงได้บ้าง