rontab มีออฟชันท์การใช้งานหลักๆ ดังต่อไปนี้
- crontab -e แก้ไข crontab ปัจจุบัน
- crontab -l ดูคำสั่ง crontab ที่ได้กำหนดไว้ทั้งหมดที่มีอยู่
- crontab -r ลบคำสั่ง crontab ที่ได้กำหนดไว้ทั้งหมด
- crontab -u user เป็นคำสั่งของผู้ดูแลระบบใช้งาน เพื่อดูแล crontab ของแต่ละ user สามารถแก้ไขและลบทิ้งได้
สำหรับ crontab -e นั้นเมื่อเรียกใช้งาน โปรแกรมจะเรียกโปรแกรมแก้ไขข้อความ(text editor) ที่เป็นค่าปริยายของระบบขึ้นมาใช้งาน หากท่านใช้งานในสายของ Debian โปรแกรมที่กำหนดไว้โดยปริยายคือ nano หากต้องการใช้ editor ตัวอื่น สามารถทำได้โดยใช้คำสั่ง $ export EDITOR=vim เป็นต้น
crontab ประกอบด้วยกันทั้งหมด 6 คอลัมน์หลักดังต่อไปนี้
m h dom mon dow command
- m หรือ minute มีค่าตั้งแต่ 0-59 เวลาเป็นนาที
- h หรือ hour มีค่าตั้งแต่ 0-23 เวลาเป็นชั่วโมง
- dom หรือ day of month หรือวันที่นั้นเอง มีค่าตั่งแต่ 1-31 ตามแต่วันที่ในแต่ละเดือน
- mon หรือ month มีค่าตั้งแต่ 1-12 เวลาเป็นเดือน
- dow หรือ day of week มีค่าตั้งแต่ 0-6 วันของแต่ละสัปดาห์ โดยแทนค่าดังต่อไปนี้
- 0 = วันอาทิตย์
- 1 = วันจันทร์
- 2 = วันอังคาร
- 3 = วันพุธ
- 4 = วันพฤหัสบดี
- 5 = วันศุกร์
- 6 = วันเสาร์
- command เป็นคำสั่งต่างๆ ที่ต้องการให้ให้เอ็กซีคิวสามารถใช้ได้ทั้งคำสั่งและสคริปท์
แต่ละคอลัมน์แบ่งออกจากันด้วยช่องว่าง(space) หรือแท็บ(ปุ่ม Tab บนคีย์บอร์ด) ยกเว้นคอลัมน์สุดท้ายจะถือว่าทั้งหมดเป็นส่วนของคำสั่ง นอกจากนี้หากต้องการแทนความหมายว่าทุกๆ ก็สามารถใช้ * แทนได้ ทุกๆ คำสั่งและสคริปท์ควรจะระบุ path เต็มเพื่อที่จะได้ไม่ผิดพลาดเวลา cron จะเอ็กซีคิวโปรแกรมหรือสริปท์ นั้นๆ
ตัวอย่างเช่น
0 * * * * /usr/sbin/ntpdate time1.nimt.or.th
หมายความว่า ทุกๆ วัน และทุกๆ ชั่วโมงที่มีเวลาเป็น 0 นาที ให้เอ็กซีคิวโปรแกรม ntpdate
*/5 * * * * /root/bin/convertor.sh
สังเกตว่าใช้เครื่องหมาย / ตามด้วยเลข 5 หมายความว่าทุกๆ 5 นาทีให้เอ็กซีคิวสคริป /root/bin/convertor.sh
0 3 */5 * * /root/bin/backupstore.sh
หมายความว่า ทุกๆ วันที่ 5 หารลงตัว คือ วันที่ 5 10 15 20 25 30 ให้เอ็กซีคิวสคริปท์นี้ ณ เวลา 3.00 AM
30 18 * * 3,5 /root/bin/mysql_backup.sh
หมายความว่า ทุกๆ วันศุกร์และวันพุธ เวลา 18.30 น. ให้รันสริปท์นี้
เราสามารถเอาเครื่องหมาย ',' '/' '*' มาใช้งานได้โดยแต่ละสัญลักษณ์มีความหมายแตกต่างกันออกไป ดังตัวอย่างด้านบน crontab มีประโยชน์มาก หากเราต้องการใช้สำรองข้อมูลตามวันและเวลาที่ต้องการ หากนึกอะไรไม่ออกก็ลองเพิ่ม crontab
0 * * * * /usr/sbin/ntpdate time1.nimt.or.th
เอาไว้ใน server เราด้วยนะครับ เพราะคำสั่งนี้เป็นคำสั่งที่ใช้ปรับเวลาเครื่องให้ตรงกับ Time server เพื่อให้เวลาเครื่องตรงกับเวลาอ้างอิงตามที่ พรบ. คอมพิวเตอร์กำหนด(Server เราจะได้ไม่ผิดกฎหมาย) โดย crontab ด้านบนเป็นการเทียบเวลากับสถาบันมาตรวิทยาของไทยเรานั้นเอง
ความคิดเห็น
แสดงความคิดเห็น