วันนี้เราจะมาดูวิธีการใช้ crontab เพื่อตั้งเวลาให้ script ที่เราเขียนขึ้นสามารถรันได้อัตโนมัติได้ตามระยะเวลาที่เราต้องการกันครับ อย่างเช่นว่า เราต้องการ upload ข้อมูลขึ้น server เราทุกชั่วโมง หรือเราต้องการตรวจเช็คว่า wifi ของเราทำงานปกติหรือไม่ในทุกๆ 5 นาที ถ้าไม่ทำงาน เราก็สามารสั่ง restart ได้ อันนี้ล้วนเป็นความสามารถพิเศษในการจัดการการทำงานของ crontab ทั้งนั้นเลยครับ ถ้าพร้อมแล้ว เราตามมาดูวิธีการ setup crantab ให้กับ raspberry pi ของเรากันได้เลยครับ
cron เป็น utilities ตัวหนึ่งที่ทำงานบนระบบปฏิบัติการ linux ที่ช่วยในเรื่องของการจัดการตารางงานหรือ job scheduling ที่จะคอยจัดการให้ software ต่างๆ ของเราเรารันงานบน linux ได้อัตโนมัติ โดยสามารถตั้งเวลาให้โปรแกรมของเรารันงานได้ตามระยะเวลาที่ต้องการ เช่นเป็นนาที เป็น ชั่วโมง หรือเป็นวัน
ส่วน crontab เป็นตารางการจัดการงาน ที่จะเก็บรายละเอียดงานต่างๆ ที่เราได้ทำการตั้งเวลาไว้ เพื่อสั่งให้ cron ทำงานอีกคร้งหนึ่ง โดย format ในการจัดการ crontab เป็นดังต่อไปนี้
[นาที] [ชั่วโมง] [วัน] [เดือน] [วันในสัปดาห์] [โปรแกรมที่ต้องการรัน]
มาดูคำอธิบายตามตามตารางกันครับ
เอาละครับ อาจจะงงๆ เรามาลอง setup crontab เพื่อเป็นตัวอย่างในการใช้งานกันเลยดีกว่า
การ setup contrab เพื่อการใช้งาน
อันดับแรก ให้เราเข้าไปดูไฟล์ crontab ของเราก่อน โดยการใช้คำสั่ง
sudo nano /etc/crontab
หลังจากนั้น เราจะเห็น รายละเอียดไฟล์ crontab ของเราดังต่อไปนี้ครับ
หลังจากนั้น เราก็เพิ่มคำสั่งที่ต้องการ เพื่อสั่งให้มีการรันโปรแกรม หรือ script ของเราอัตโนมัติ โดยต่อท้ายบรรทัดสุดของไฟล์ crontab ที่เราเปิดขึ้นมาครับ ตาม format ต่อไปนี้
[นาที] [ชั่วโมง] [วัน] [เดือน] [วันในสัปดาห์] [โปรแกรมที่ต้องการรัน]
ในตัวอย่างผมใส่ crontab เพื่อตรวจเช็ค wifi ทุกๆ 5 นาทีครับ ผมก็ใช้คำสั่งดังต่อไปนี้
*/5 * * * * root /home/pi/script/testwifi.sh
และอีกตัวอย่างหนึ่ง คือผมใช้ crontab เพื่อ upload ข้อมูลขึ้น ftp server ในทุกๆ 1 ชัวโมงครับ ผมก้ใช้คำสั่งดังต่อไปนี้
0 * * * * root /home/pi/python/wx/ftp_graphs.py
มาดูหน้าตาไฟล์ที่เสร็จแล้วกันครับ
เสร็จแล้วครับ หลังจากนั้นก็สั่ง reboot สักหนึ่งครั้ง คราวนี้ raspberry pi ของเราก็พร้อมทำงานตาม schedule ที่เราได้ตั้งไว้แล้วครับ
แล้วพบกันใหม่กับบทความสนุกๆ ตอนหน้า สวัสดีครับ