การใช้ crontab ตั้งเวลาให้ script ใน Raspberry Pi ทำงานอัตโนมัติ

วันนี้เราจะมาดูวิธีการใช้ crontab เพื่อตั้งเวลาให้ script ที่เราเขียนขึ้นสามารถรันได้อัตโนมัติได้ตามระยะเวลาที่เราต้องการกันครับ อย่างเช่นว่า เราต้องการ upload ข้อมูลขึ้น server เราทุกชั่วโมง หรือเราต้องการตรวจเช็คว่า wifi ของเราทำงานปกติหรือไม่ในทุกๆ 5 นาที ถ้าไม่ทำงาน เราก็สามารสั่ง restart ได้ อันนี้ล้วนเป็นความสามารถพิเศษในการจัดการการทำงานของ crontab ทั้งนั้นเลยครับ ถ้าพร้อมแล้ว เราตามมาดูวิธีการ setup crantab ให้กับ raspberry pi ของเรากันได้เลยครับ

crontab-001

 

cron เป็น utilities ตัวหนึ่งที่ทำงานบนระบบปฏิบัติการ linux ที่ช่วยในเรื่องของการจัดการตารางงานหรือ job scheduling ที่จะคอยจัดการให้ software ต่างๆ ของเราเรารันงานบน linux ได้อัตโนมัติ โดยสามารถตั้งเวลาให้โปรแกรมของเรารันงานได้ตามระยะเวลาที่ต้องการ เช่นเป็นนาที เป็น ชั่วโมง หรือเป็นวัน

ส่วน crontab เป็นตารางการจัดการงาน ที่จะเก็บรายละเอียดงานต่างๆ ที่เราได้ทำการตั้งเวลาไว้ เพื่อสั่งให้ cron ทำงานอีกคร้งหนึ่ง โดย format ในการจัดการ crontab เป็นดังต่อไปนี้

[นาที] [ชั่วโมง] [วัน] [เดือน] [วันในสัปดาห์] [โปรแกรมที่ต้องการรัน]

มาดูคำอธิบายตามตามตารางกันครับ

crontab-002

 

เอาละครับ อาจจะงงๆ เรามาลอง setup crontab เพื่อเป็นตัวอย่างในการใช้งานกันเลยดีกว่า

การ setup contrab เพื่อการใช้งาน

อันดับแรก ให้เราเข้าไปดูไฟล์ crontab ของเราก่อน โดยการใช้คำสั่ง

หลังจากนั้น เราจะเห็น รายละเอียดไฟล์ crontab ของเราดังต่อไปนี้ครับ

crontab-003

 

หลังจากนั้น เราก็เพิ่มคำสั่งที่ต้องการ เพื่อสั่งให้มีการรันโปรแกรม หรือ script ของเราอัตโนมัติ โดยต่อท้ายบรรทัดสุดของไฟล์ crontab ที่เราเปิดขึ้นมาครับ ตาม format ต่อไปนี้

[นาที] [ชั่วโมง] [วัน] [เดือน] [วันในสัปดาห์] [โปรแกรมที่ต้องการรัน]

ในตัวอย่างผมใส่ crontab เพื่อตรวจเช็ค wifi ทุกๆ 5 นาทีครับ ผมก็ใช้คำสั่งดังต่อไปนี้

และอีกตัวอย่างหนึ่ง คือผมใช้ crontab เพื่อ upload ข้อมูลขึ้น ftp server ในทุกๆ 1 ชัวโมงครับ ผมก้ใช้คำสั่งดังต่อไปนี้

มาดูหน้าตาไฟล์ที่เสร็จแล้วกันครับ

crontab-005

 

เสร็จแล้วครับ หลังจากนั้นก็สั่ง reboot สักหนึ่งครั้ง คราวนี้ raspberry pi ของเราก็พร้อมทำงานตาม schedule ที่เราได้ตั้งไว้แล้วครับ

แล้วพบกันใหม่กับบทความสนุกๆ ตอนหน้า สวัสดีครับ

Leave a Reply