วิธีเรียกใช้สคริปต์ PHP ในฐานะผู้ใช้ปกติด้วย Cron
Cron เป็นยูทิลิตี้อันทรงพลังสำหรับการตั้งเวลางานในระบบปฏิบัติการแบบ Unix รวมถึง Linux โดยทำงานเป็น daemon และสามารถใช้เพื่อกำหนดเวลางาน เช่น คำสั่งหรือเชลล์สคริปต์เพื่อทำการสำรองข้อมูล กำหนดเวลาการอัปเดต และอื่นๆ อีกมากมาย ซึ่งทำงานเป็นระยะและโดยอัตโนมัติในเบื้องหลังตามเวลา วันที่ หรือช่วงเวลาที่กำหนด
ข้อจำกัดประการหนึ่งของ cron คือถือว่าระบบจะทำงานตลอดไป ดังนั้นจึงเหมาะสำหรับเซิร์ฟเวอร์อื่นที่ไม่ใช่เครื่องเดสก์ท็อป นอกจากนี้ คุณยังสามารถกำหนดเวลางานตามเวลาที่กำหนดหรือในภายหลังได้โดยใช้คำสั่ง 'at' หรือ 'batch' แต่งานจะทำงานเพียงครั้งเดียวเท่านั้น (จะไม่เกิดซ้ำ)
การอ่านที่แนะนำ: วิธีกำหนดเวลางานโดยใช้ Anacron บน Linux
ในบทความนี้ เราจะอธิบายวิธีอนุญาตให้ผู้ใช้ระบบทั่วไปเรียกใช้หรือรันสคริปต์ PHP ผ่านตัวกำหนดเวลางาน cron ใน Linux
คุณสามารถกำหนดเวลางานได้โดยใช้โปรแกรม crontab (CRON TABle) ผู้ใช้แต่ละคนสามารถมีไฟล์ crontab ของตัวเองซึ่งประกอบด้วยหกฟิลด์สำหรับกำหนดงาน:
- นาที – ยอมรับค่าระหว่าง 0-59
- ชั่วโมง – ยอมรับค่าระหว่าง 0-23
- วันของเดือน – เก็บค่าระหว่าง 1-31
- เดือนของปี – เก็บค่าระหว่าง 1-12 หรือ Jan-Dec คุณสามารถใช้ตัวอักษรสามตัวแรกของชื่อแต่ละเดือนได้ เช่น Jan หรือ Jun
- วันในสัปดาห์ – เก็บค่าระหว่าง 0-6 หรือวันอาทิตย์-วันเสาร์ นอกจากนี้ คุณยังใช้ตัวอักษรสามตัวแรกของชื่อแต่ละวันได้ เช่น วันอาทิตย์หรือวันพุธ
- คำสั่ง – คำสั่งที่จะดำเนินการ
หากต้องการสร้างหรือแก้ไขรายการในไฟล์ crontab ของคุณเอง ให้พิมพ์:
crontab -e
และหากต้องการดูรายการ crontab ทั้งหมดของคุณ ให้พิมพ์คำสั่งนี้ (ซึ่งจะพิมพ์ไฟล์ crontab ไปยังเอาต์พุต std):
crontab -l
อย่างไรก็ตาม หากคุณเป็นผู้ดูแลระบบและต้องการรันสคริปต์ PHP ในฐานะผู้ใช้รายอื่น คุณจะต้องกำหนดเวลาสคริปต์ดังกล่าวในไฟล์ /etc/crontab หรือไฟล์ crontab ของผู้ใช้รูทซึ่งรองรับไฟล์พิเศษสำหรับการระบุ ชื่อผู้ใช้:
sudo vi /etc/crontab
และกำหนดเวลาให้สคริปต์ PHP ของคุณดำเนินการเช่นนี้ โดยระบุ ชื่อผู้ใช้ หลังส่วนกำหนดเวลา
0 0 * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php
รายการข้างต้นรันสคริปต์ /var/www/test_site/cronjobs/backup.php ทุกวันเวลาเที่ยงคืนในฐานะผู้ใช้ tecmint
หากคุณต้องการรันสคริปต์ด้านบนโดยอัตโนมัติทุกๆ สิบนาที ให้เพิ่มรายการต่อไปนี้ในไฟล์ crontab
*/10 * * * * tecmint /usr/bin/php -f /var/www/test_site/cronjobs/backup.php
ในตัวอย่างข้างต้น */10 * * * *
แสดงถึงเวลาที่งานควรจะเกิดขึ้น ตัวเลขแรกแสดง นาที – ในสถานการณ์นี้ ทุกๆ "สิบ"
นาที ส่วนตัวเลขอื่นๆ จะแสดง ชั่วโมง วัน เดือน และวันในสัปดาห์ตามลำดับ
คุณอาจต้องการอ่านบทความที่เกี่ยวข้องต่อไปนี้
- การใช้เชลล์สคริปต์เพื่อทำให้งานบำรุงรักษาระบบ Linux เป็นแบบอัตโนมัติ
- 12 การใช้งาน Commandline PHP ที่มีประโยชน์ ผู้ใช้ Linux ทุกคนต้องรู้
- วิธีเรียกใช้โค้ด PHP ใน Linux Terminal
- 30 คำสั่ง Linux ที่มีประโยชน์สำหรับผู้ดูแลระบบ
นั่นคือทั้งหมด! เราหวังว่าคุณจะพบว่าบทความนี้มีประโยชน์ หากคุณมีคำถามหรือแนวคิดเพิ่มเติมที่จะแบ่งปันเกี่ยวกับหัวข้อนี้ โปรดใช้แบบฟอร์มความคิดเห็นด้านล่าง