Bash Scripting เบื้องต้น
Alex Scriven
Data Scientist
มีหลายสถานการณ์ที่การกำหนดเวลาสคริปต์เป็นประโยชน์:
การกำหนดเวลาสคริปต์ด้วย cron เป็นทักษะสำคัญสำหรับการทำงานกับโครงสร้างข้อมูลสมัยใหม่
Cron เป็นส่วนหนึ่งของระบบ Unix-like มาตั้งแต่ยุค 70 มนุษย์ขี้เกียจมานานขนาดนั้น!
ชื่อนี้มาจากคำภาษากรีกที่แปลว่าเวลา คือ chronos
การทำงานขับเคลื่อนด้วยสิ่งที่เรียกว่า crontab ซึ่งเป็นไฟล์ที่มี cronjobs แต่ละรายการกำหนดว่าจะรันโค้ดใดและเมื่อใด
ดูกำหนดเวลา (cronjobs) ที่ตั้งค่าอยู่ในขณะนี้ได้ด้วยคำสั่งต่อไปนี้:
crontab -l
crontab: no crontab for user
ดูเหมือนจะต้องสร้างกำหนดเวลา (cronjob) ก่อน!
ภาพจาก Wikipedia นี้แสดงโครงสร้างของ cronjob ภายในไฟล์ crontab สามารถมี cronjobs ได้หลายรายการ โดยเขียนหนึ่งรายการต่อหนึ่งบรรทัด

* หมายถึง "ทุก"มาดูตัวอย่าง cronjob กัน:
5 1 * * * bash myscript.sh
* หมายถึงทุกวันและทุกเดือน
15 14 * * 7 bash myscript.sh
* (ทุกวันในเดือน ทุกเดือน) ดาวสุดท้าย คือ วันที่ 7 (วันอาทิตย์)หากต้องการรันหลายครั้งต่อวันหรือทุก "X" ช่วงเวลา ก็ทำได้เช่นกัน:
15,30,45 * * * * จะรันที่นาทีที่ 15, 30 และ 45 ของทุกชั่วโมงที่กำหนดโดยดาวที่สอง ในที่นี้คือทุกชั่วโมง ทุกวัน*/15 * * * * รันทุก 15 นาที รวมถึงทุกชั่วโมง ทุกวันมากำหนดเวลาให้สคริปต์ extract_data.sh รันทุกเช้าเวลา 1:30 น. กัน โดยมีขั้นตอนดังนี้:
crontab -e ในเทอร์มินัลเพื่อแก้ไขรายการ cronjobsnano เป็นตัวเลือกที่ใช้งานง่ายและมีเส้นโค้งการเรียนรู้ที่ไม่ชันเท่า vi (vim)30 1 * * * extract_data.sh3. ออกจากโปรแกรมแก้ไขเพื่อบันทึก
หากใช้ nano (บน Mac) ให้กด ctrl + o แล้ว enter จากนั้น ctrl + x เพื่อออก
จะปรากฏข้อความ crontab: installing new crontab
4. ตรวจสอบว่ามีอยู่แล้วโดยรัน crontab -l
30 1 * * * extract_data.sh
ทำได้ดีมาก!
Bash Scripting เบื้องต้น