25 มี.ค. 2022 เวลา 04:20 • วิทยาศาสตร์ & เทคโนโลยี
SCHEDULING: ตั้งเวลา run Python script บน Linux ด้วย CRON กัน !
“Cron มาจากคำว่า Chronos ในภาษากรีก มีความหมายว่า เวลา”
และ Cron ก็เป็นเครื่องมือบน Linux ที่ช่วยให้เราสามารถกำหนดเวลา “การทำงานของ Python Script” หรือ “คำสั่งต่าง ๆ” ได้โดยอัตโนมัติ โดยเราจะระบุ Cron job หรือ Cron schedule ซึ่งประกอบด้วยคำสั่งที่ต้องการกำหนดการทำงาน ควบคู่กับเวลาการทำงาน ภายในไฟล์ Crontab
การตั้งกำหนดการทำงานผ่าน Cron นั้นเป็นเรื่องง่ายมาก เพียงแค่ต้องรู้ “รูปแบบการเขียนกำหนดการ” ภายในไฟล์ Crontab ให้ถูกต้อง
ตั้งเวลา run Python script บน Linux ด้วย CRON
หลังจากที่เพื่อน ๆ ได้เขียนโปรแกรมมาระยะนึง ก็อาจจะเกิดคำถามว่า “จะเป็นไปได้ไหมที่เราจะตั้งเวลา (schedule) ให้โปรแกรม Python ของเรานั้น ทำงานตามกำหนดเวลาโดยอัตโนมัติ” ตัวอย่างเช่น เราอาจจะเขียนโปรแกรมเพื่อดึงข้อมูลจาก API หรือทำการดึงข้อมูลจากเว็บไซต์ผ่านเทคนิค Web Scraping และต้องการที่จะตั้งเวลาให้ Python script ของเรานั้นดึงข้อมูลใหม่ทุก ๆ วัน
ในบทความนี้ เราจะพาเพื่อน ๆ ไปรู้จักและทดลองใช้ CRON เครื่องมือที่ช่วยให้เราสามารถตั้งเวลาทำงานของ Python script โดยอัตโนมัติบน Linux
CRON คืออะไร ?
Cron เป็นเครื่องมือบน Linux ที่ช่วยให้เราสามารถกำหนดเวลา การทำงานของ script หรือ คำสั่งต่าง ๆ ได้โดยอัตโนมัติ โดยที่เราจะระบุ Cron job หรือ Cron schedule ซึ่งประกอบด้วยคำสั่งที่ต้องการกำหนดการทำงานควบคู่กับเวลาการทำงาน ภายในไฟล์ Crontab
“Crontab มาจาก Cron table จึงเปรียบเสมือน timetable หรือ ตารางเวลา”
การเขียนไฟล์ Crontab
รูปแบบกำหนดการ: การตั้งกำหนดการทำงานของคำสั่งต่าง ๆ ผ่าน Cron นั้นไม่ใช่เรื่องยาก เพียงแต่เราต้องเรียนรู้ รูปแบบการเขียนกำหนดการ ภายในไฟล์ Crontab
ซึ่งไฟล์ Crontab จะจัดเก็บกำหนดการทำงานของแต่ละคำสั่งไว้ในแต่ละบรรทัด โดยที่แต่ละบรรทัดจะประกอบไปด้วย fields ที่ระบุเวลาการทำงานของคำสั่งจำนวน 5 fields และตามด้วย คำสั่ง นั้น ๆ กล่าวคือ
การเขียนไฟล์ Crontab: รูปแบบกำหนดการ
การระบุเวลา
สำหรับ fields ที่กำหนดเวลาทั้ง 5 fields นั้น สามารถระบุเป็นค่าตัวเลข หรือ ใช้อักขระพิเศษมาช่วยในการระบุกำหนดการ ซึ่งรูปแบบที่เป็นไปได้ประกอบไปด้วย
การเขียนไฟล์ Crontab: การระบุเวลา
สำหรับตัวอย่างกำหนดการอื่น ๆ เพื่อน ๆ สามารถเข้ามาดูได้ที่ https://crontab.guru ซึ่งนอกจากจะมีตัวอย่างการระบุเวลาแล้ว เพื่อน ๆ ยังสามารถทดลองใส่การระบุเวลาของตนเองเพื่อตรวจว่าเป็นไปตามต้องการก่อนนำไปใช้จริงได้อีกด้วย
LAB ตั้งเวลา run Python script บน ubuntu
ขั้นตอนตั้งเวลา run Python script บน ubuntu
เนื้อหาโดย ณัฐพัชร์ เศรษฐเสถียร
ตรวจทานโดย พีรดล สามะศิริ
อ่านวิธีการใช้ Cron ตั้งเวลา Run Python Script เพิ่มเติมได้ที่
โฆษณา