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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
สอบถามเรื่อง UI input flie
โดย flook พฤ 19 ต.ค. 2023 11:06 am บอร์ด HTML CSS
1
4153
พฤ 19 ต.ค. 2023 5:35 pm โดย eange08 View Topic สอบถามเรื่อง UI input flie
โฮสติ้ง 1GB 300/ปี By Asiagb.com
โดย asiagb อ 17 ต.ค. 2023 5:28 pm บอร์ด Web Hosting Review - Free Host Share Host VPS
0
1993
อ 17 ต.ค. 2023 5:28 pm โดย asiagb View Topic โฮสติ้ง 1GB 300/ปี By Asiagb.com
4 เหตุผลที่ร้านค้ายุคใหม่ ต้องมีแชทบอทตรวจสลิปปลอม!
โดย dasaki จ 16 ต.ค. 2023 7:06 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
517
จ 16 ต.ค. 2023 7:06 pm โดย dasaki View Topic 4 เหตุผลที่ร้านค้ายุคใหม่ ต้องมีแชทบอทตรวจสลิปปลอม!
3 วิธีเช็กสลิปปลอม ทำอย่างไรไม่ให้ตกเป็นเหยื่อลูกค้าแกล้งโอน?
โดย dasaki จ 16 ต.ค. 2023 6:57 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
505
จ 16 ต.ค. 2023 6:57 pm โดย dasaki View Topic 3 วิธีเช็กสลิปปลอม ทำอย่างไรไม่ให้ตกเป็นเหยื่อลูกค้าแกล้งโอน?
สอบถามทำ ajax เพื่อทำเช็คสถานะจาก api omise แบบทำงานเบื้องหลังเว็บ
โดย eange08 จ 16 ต.ค. 2023 12:16 pm บอร์ด JavaScript & jQuery Ajax & Node.JS
2
738
ศ 20 ต.ค. 2023 6:39 pm โดย eange08 View Topic สอบถามทำ ajax เพื่อทำเช็คสถานะจาก api omise แบบทำงานเบื้องหลังเว็บ
สอบถามเกี่ยวกับ plugin Croppie ปัญหาภาพกระตุก
โดย flook จ 16 ต.ค. 2023 10:11 am บอร์ด JavaScript & jQuery Ajax & Node.JS
4
623
จ 16 ต.ค. 2023 4:19 pm โดย flook View Topic สอบถามเกี่ยวกับ plugin Croppie ปัญหาภาพกระตุก
สอบถามมี api map แนะนำไหมครับทำตัวนำทาง
โดย Thanapoom1514 พฤ 12 ต.ค. 2023 5:30 pm บอร์ด Programming - PHP
2
1128
อ 31 ต.ค. 2023 12:50 pm โดย Thanapoom1514 View Topic สอบถามมี api map แนะนำไหมครับทำตัวนำทาง
Canva การเลือกใช้ Templates ให้เหมาะกับงาน
โดย sirapop014563 พฤ 12 ต.ค. 2023 3:47 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
596
พฤ 12 ต.ค. 2023 3:47 pm โดย sirapop014563 View Topic Canva การเลือกใช้ Templates ให้เหมาะกับงาน