คำสั่ง Crontab เป็นคำสั่งในการทำ Schedule ในการสั่งโปรแกรม หรือ Script ต่าง ๆ ทำงานตามเวลาที่กำหนด บนระบบ Unix/Linux ซึ่งอำนวย
ความสะดวกได้มากที่เดียว งานบางอย่างที่จำเป็นต้องทำซ้ำ ๆ ในเวลาเดียวกันไม่ว่าจะทุกวัน ทุกสัปดาห์ หรือทุกเดือน เช่นสั่งให้ clear log ของ Squid
ทุกเที่ยงคืนของวันอาทิตย์
คำสั่งและ option ของ crontab มีดังนี้
Code:
#crontab filename การนำเอาคำสั่ง crontab เข้ามาจาก ไฟล์อื่น
#crontab -e แก้ไข crontab ปัจจุบัน (ส่วนมากผมจะเพิ่มคำสั่งลงไปในนี้เลย)
#crontab -l ดูคำสั่ง crontab ทั้งหมดที่มีอยู่
#crontab -r ลบคำสั่ง crontab ที่มีทั้งหมด
#crontab -u user เป็นคำสั่งของผู้ดูแลระบบเท่านั้น เพื่อใช้ดู แก้ไข ลบ crontab ของ user แต่ละคน
เมื่อเรีกคำสั่งตามข้างบนแล้ว crontab จะเข้าสู่ระบบการ กำหนด หรือแก้ไข ซึ่งการกำหนด หรือแก้ไขนี้จะเหมือนกับการใช้งาน vi
Format ของคำสั่ง crontab มีทั้งหมด 6 fields ดังนี้
1 = minute
2 = hour
3 = day
4 = month
5 = weekday
6 = command
ความหมายของแต่ละ fields มีดังต่อไปนี้
minute มีค่า 0 - 59 เวลาเป็นนาที จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงนาทีที่กำหนด
hour มีค่า 0 - 23 เวลาเป็นชั่วโมง จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงชั่วโมงที่กำหนด
day มีค่า 1 - 31 เวลาเป็นวัน จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงวันที่กำหนด
month มีค่า 1 - 12 เวลาเป็นเดือน จะสั่งให้คำสั่งที่กำหนดทำงานทันที่เมื่อถึงเดือนที่กำหนด
weekday มีค่า 0 - 6 วันขะงแต่ละสัปดาห์ มีค่าดังนี้ (อาทิตย์ = 0, จันทร์ = 1, อังคาร = 2, พุธ = 3, พฤหัส = 4, ศุกร์ = 5 ,เสาร์ = 6 )
command คำสั่ง เราสามารถกำหนดคำสั่งได้มากมาย รวมทั้ง script ต่าง ๆ ตามที่เราต้องการ
ตัวอย่าง
* ต้องการให้ clear log ของ Squid ทุกเที่ยงคืนของวันอาทิตย์
# crontab -e /* เพื่อคำสั่งเข้าไป */
0 0 * * 0 /usr/local/squid/sbin/squid -k rotate
* แล้วทำการบันทึกแล้วออกมาโดยกด Esc แล้วกด :wqขอบคุณแหล่งข้อมุลจาก : Phimongkon