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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แบ่งหน้าแล้วไม่แสดงข้อมูล
โดย Anonymous อ 23 ก.พ. 2010 5:24 pm บอร์ด Programming - PHP
4
1190
พฤ 04 มี.ค. 2010 11:35 am โดย บุคคลทั่วไป View Topic แบ่งหน้าแล้วไม่แสดงข้อมูล
Mysql 4.0 ติดตั้งบน window server 2008 32bit,64bit ได้แต่ไม่ควรใช้
โดย mindphp อ 23 ก.พ. 2010 1:32 pm บอร์ด SQL - Database
0
1905
อ 23 ก.พ. 2010 1:32 pm โดย mindphp View Topic Mysql 4.0 ติดตั้งบน window server 2008 32bit,64bit ได้แต่ไม่ควรใช้
สอบถามเรื่อง C# หน่อย ครับ
โดย tae1200 อ 23 ก.พ. 2010 1:12 pm บอร์ด Programming - C/C++ & java & Python
1
2324
ศ 26 ก.พ. 2010 6:40 pm โดย teckth View Topic สอบถามเรื่อง C# หน่อย ครับ
SQL Server 2005 Express Edition with Advanced Services SP3
โดย mindphp อ 23 ก.พ. 2010 11:31 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
2359
อ 23 ก.พ. 2010 11:31 am โดย mindphp View Topic SQL Server 2005 Express Edition with Advanced Services SP3
เอาโค้ดจาวา ที่โฆษณาแบบ google adsense ไปวางตรงไหนของเว็บค่ะ
โดย happyfly อ 23 ก.พ. 2010 9:08 am บอร์ด JavaScript & jQuery Ajax & Node.JS
1
1851
อ 23 ก.พ. 2010 9:22 am โดย mindphp View Topic เอาโค้ดจาวา ที่โฆษณาแบบ google adsense ไปวางตรงไหนของเว็บค่ะ
จาก code ทำไงให้เล่นใน firefox ได้อะครับ
โดย poloming7 จ 22 ก.พ. 2010 2:24 pm บอร์ด JavaScript & jQuery Ajax & Node.JS
4
2310
จ 22 ก.พ. 2010 4:34 pm โดย ob1 View Topic จาก code ทำไงให้เล่นใน firefox ได้อะครับ
ช่วยดูให้หน่อยคับ ผมไม่รู้ว่าผมใช้คำสั่ง sql ถูกรึป่าว
โดย maii อ 21 ก.พ. 2010 11:24 am บอร์ด Programming - PHP
6
3031
จ 22 ก.พ. 2010 9:33 pm โดย maii View Topic ช่วยดูให้หน่อยคับ ผมไม่รู้ว่าผมใช้คำสั่ง sql ถูกรึป่าว
phpNuke to Joomla ได้เวลาอพยม (Migration) แล้ว Joomla ไม่ใช่แค่กระแสแต่ดีจริง
โดย mindphp จ 22 ก.พ. 2010 12:23 am บอร์ด MindPHP News & Feedback
0
1047
จ 22 ก.พ. 2010 12:23 am โดย mindphp View Topic phpNuke to Joomla ได้เวลาอพยม (Migration) แล้ว Joomla ไม่ใช่แค่กระแสแต่ดีจริง