การเขียน crontab บน Linux Redhat
Cron เป็นการสั่งคำสั่งเพื่อให้ server ของเรานั้นทำงานโดยอัตโนมัติตามเวลาที่เราเขียนไฟล์ตั้งเวลาไว้ หรือพูดง่าย ๆ ว่าเป็นการรันสคริปต์ตามเวลาที่เราตั้งไว้นั่นเอง ซึ่งส่วนใหญ่จะเป็นงานซ้ำ ๆ ที่ต้องสั่งเหมือนกัน ทุก ๆ วัน หรือทุก ๆ สัปดาห์ cron ก็จะมาช่วยอำนวยความสะดวกให้เราได้ ซึ่งถ้าเราต้องการตั้งเวลาทำงานอัตโนมัตินั้น เราจะไประบุได้ที่ไฟล์ /etc/crontab ซึ่งจะเป็นไฟล์ที่เก็บคำสั่งและเวลาที่ต้องการให้คำสั่งทำงาน ซึ่งจะเป็นรูปแบบ
# * * * * * < user > < command > // ซึ่งตัว * แต่ละหลักจะมีความหมายดังนี้ |
- นาที ( 0-59 )
- ชั่วโมง ( 0-23 )
- วันในรอบเดือน ( 1-31 )
- เดือน (1-12)
- วันในสัปดาห์ (0-6 Sunday =0 )
ซึ่งถ้าหลักใหนใช้เป็น * จะแปลว่าไม่สนใจในหลักนั้น
ตัวอย่าง เช่นถ้าต้องการรันคำสั่งทุก ๆ วันจันทร์ เวลา 02.30 จะตั้งเป็น
# 30 02 * * 1 root tar zcvf /var/log/messege |
ต้องการรันคำสั่งทุก ๆ วันที่ 12 ของเดือน เวลา 12.12 จะตั้งเป็น
# 12 12 12 * * root tar jcvf /home |
ซึ่งรูปแบบข้างต้นนั้นจะเป็นการเพิ่มเข้าไปใน crontab โดยตรง ซึ่งจริง ๆ แล้วนั้น cron นั้นได้เตรียม script ที่จะรัน cron พื้นฐานไว้ให้แล้ว เช่น cron.daily , cron.monthly , cron.hourly ซึ่งจะอยู่ใน /etc ซึ่งเราสามารถเขียนไฟล์สคริปต์คำสั่งไปวางใน directory เหล่านี้เพื่อให้รันอัตโนมัติตามที่ตั้งเวลาไว้ แต่ถ้าต้องการตั้งเวลาในการรันอัตโนมัติเองนั้น หรือถ้าเป็น normal user ต้องการใช้งาน cron เราสามารถใช้งานได้โดยใช้คำสั่ง crontab -e ซึ่งการเขียน cron จะต่างกับการเขียนลง crontab โดยตรงเล็กน้อยคือ ไม่ต้องระบุชื่อ user ที่รัน ส่วนอื่น ๆ จะเหมือนกัน
# * * * * * < command > |
ตัวอย่าง เช่น ถ้าต้องการรันคำสั่งทุก ๆ วันจันทร์ เวลา 02.30 จะตั้งเป็น
# 30 02 * * 1 tar zcvf /var/log/messege |