淺談crond服務及crontab用法

Crond是Linux用來定期執行命令或指定程序任務的一種服務或軟件。Crond服務會定期(默認每分鐘檢查一次)檢查系統中是否有要執行的任務工作。如果有,便會根據其預先設定的定時任務規則自動執行該定時任務工作。這個Crond定時任務服務就相當於我們早上使用的鬧鐘一樣。
crond服務是運行的程序,而crontab是用戶用來設置定時規則的命令。
crontab是一個很方便的在unix/linux系統上定時(循環)執行某個任務的程序,使用cron服務,用 service crond status 查看 cron服務狀態,如果沒有啓動則 service crond start啓動它,cron服務是一個定時執行的服務,可以通過crontab 命令添加或者編輯需要定時執行的任務:

crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數 
crontab -l //列出某個用戶cron服務的詳細內容 
crontab -r //刪除沒個用戶的cron服務 
crontab -e //編輯某個用戶的cron服務
crontab -h //查看幫助

usage:crontab [-u user] file
       crontab [-u user] [ -e | -l | -r ]
 (default operation is replace,per 1003.2)
      -e     (edit user's crontab)
      -l     (list user's crontab)
      -r     (delete user's crontab)
      -i     (prompt before deleting user's crontsb)
      -s     (selinux crontab)

基本格式:

f1  f2  f3  f4  f5   program

f1: minute(0 - 59) //分鐘,0-59之間的整數
f2: hour(0-23) //小時
f3: day(1-31) //日期,如果指定了月份,日期必須正確
f4: month(1-12) //月份
f5: day of week(1-7) //一週中的日期,也可以用英文的縮寫如sun, mon
program: command //表示要執行的命令

測試用例:

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart

上面的例子表示每星期六的11 : 00 pm重啓apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每一小時重啓apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

晚上11點到早上7點之間,每隔一小時重啓apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

每月的4號與每週一到週三的11點重啓apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

一月一號的4點重啓apache

0 7 * * * /bin/ls

每天早上7點執行一次 /bin/ls

0 6-12/3 * 12 * /usr/bin/backup

在 12 月內, 每天的早上 6 點到 12 點中,每隔3個小時執行一次 /usr/bin/backup

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章