循環性計劃任務 週期性計劃任務
安裝軟件
crontabs-1.10-33.el6.noarch
cronie-1.4.4-7.el6.x86_64
查看crontabs軟件有無安裝
# rpm -qa |grep crontabs
啓動服務
# /etc/init.d/crond start 默認是啓動的
# chkconfig |grep crond 默認2 3 4 5 是啓動的
crontab的運行方式
/var/spool/cron/ 工作將以文本文件的方式寫入此目錄內以用戶名命名的文件,例jack賬戶使用crontab後,他的工作就會記錄到/var/spool/cron/jack文件中,執行的任務會記錄到日誌文件/var/log/cron中
配置
crontab [-u user] [ -e | -l | -r ]
-u 指定用戶
-e 編輯用戶的計劃任務
-l 列出用戶的計劃任務
-r 刪除用戶的計劃任務
#crontab -e 編輯週期性計劃任務的內容 空白 man 5 crontab
時間 動作
分鐘 小時 日 月 周
0-59 0-23 1-31 1-12 0-7
5 * * * * 命令或者腳本(寫絕對路徑)
*/5 * * * *
5-9
5,10,12
5-9,12-20,25-27
1 1 28 * 6
時間的寫法
The time and date fields are:
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sun, or use names)
* 任何時刻
, 分隔 // 0 3,6 * * * 3點和6點進行
- 一段時間 // 1-5 3 * * * 3點的1,2,3,4,5分鐘進行
/n 每隔n單位間隔 // */5 * * * * 每5分鐘進行
1-9/2 // "1,3,5,7,9"
例:
發郵件 女朋友生日5月2日 /home/tom/lover.txt 信的內容 每年發
crontab -e
59 23 1 5 * mail kiki < /home/tom/lover.txt
tom賬戶每小時執行腳本一次(腳本內的命令也一定要寫絕對路徑)
crontab -u tom -e
* */1 * * * /bin/bash a.sh
查詢週期計劃任務
crontab -l //查當前用戶的計劃任務
crontab -u tom -l //查指定用戶的計劃任務
修改
crontab -e 編輯文本 文本存放/var/spool/cron
刪除某用戶的所有周期計劃任務(刪除某條有crontab -e 進入文本刪除某條)
# crontab -r //當前用戶
# crontab -u redhat -r //指定用戶
系統定義的計劃任務
更新whatis數據庫
更新updatedb數據庫
日誌定期輪轉
清理/tmp,/var/tmp
收集系統的狀態信息
...
# /etc/crontab 配置文件 需重啓服務
SHELL=/bin/bash //使用的shell
PATH=/sbin:/bin:/usr/sbin:/usr/bin //執行文件查找命令
MAILTO=root //若有額外的輸出,以email將數據發送給誰 /etc/crontab這個文件中例行工作的命令發生錯誤,將錯誤消息發給誰
HOME=/ //默認此shell的主文件夾所在
*/5 * * * * root 命令 //每隔5分中以root身份執行命令 默認不寫用戶是root
時間 執行者身份
01 * * * * root run-parts /root/runcron //每分鐘執行/root/runcron文件夾下的腳本 新建 /root/runcron 文件夾
查看任務是否執行
/var/log/cron 日誌文件中
以下目錄內可以存放腳本 該腳本就會按照時間去執行
/etc/cron.daily 每天
/etc/cron.hourly 每小時
/etc/cron.monthly 每月1號
/etc/cron.weekly 每週日
cat /etc/cron.daily/tmpwatch 超過一個月不使用的文件刪除