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