計劃任務
序
1、爲什麼要設置計劃任務
定時備份,定時重啓
管理任務,定時將服務器信息發郵件,每天只需要收郵件,就能瞭解很多臺服務器的信息
2、主要分兩種
一次性計劃任務
週期性計劃任務
一、一次性計劃任務
指定的時間執行一次
1、指定時間的方式
絕對計時方法:
midnight午夜 noon中午 teatime下午茶(16:00)
hh:mm[today]
hh:mmtomorrow
hh:mmMM/DD/YY
相對計時方法:
now+ n minutes
now + n hours
now+ n days
具體看幫助 man at
2、如何設定系統時間
系統時鐘 date
設置日期 date -s '2013-05-14 11:27:00'
硬件時鐘clock
clock--systohc 將系統時間存回硬件時鐘內
clock--hctosys 系統時間設成和硬件時鐘一致
3、任務設定
指定在今天下午17:30執行某命令,假設當前時間是2013年1月15日
at17:30
at5:30pm
at17:30 today
atnow + 3 hours
at17:30 01/15/13
at17:30 15.01.13 如果用(.)表示日月年
atnow + 5 minutes回車後,輸入要執行命令,寫完按ctrl+d保存
命令最好寫絕對路徑(例如which ls將查詢到ls命令在哪裏)
例 at now + 1 minutes
/usr/bin/wall“hi,this is a test.” 一分種後發一個廣播
查看計劃任務進程是否開啓ps -le| grep atd
啓動進程/etc/rc.d/init.d/atd start
默認都會安裝計劃任務並啓動
4、查看任務
查看隊列中的任務
at-l 或 atq
存放在這裏
ls/var/spool/at/的一個可執行文件,任務執行後文件消失
5、刪除任務
刪除一次性計劃任務
at-d 序號
6、執行權限
at配置文件,哪些用戶可以使用at
/etc/at.allow
/etc/at.deny
如果存在/etc/at.allow,只有在此文件中的用戶纔可以使用at命令
如果存在/etc/at.deny,在此文件中的用戶不可使用at命令
如果兩個文件都不存在,只有超級用戶可以使用at命令
如果兩個文件都存在均爲空,則所有用戶都可以使用at命令
7、低負載計劃任務batch(擴展)
batch用法與at一樣
無需指定時間,安排在系統負載較輕時運行一次
一般情況負載較低指0.8以下(w或top命令能看到)
二、週期性計劃任務
1、crontab命令 [krn teibl]
週期性計劃任務
三個常用選項:
-l 列出當前crontab
-r 刪除當前的crontab 不建議用,直接用-e編輯就好
-e 編輯當前的crontab文件
crontab-e
2、計劃任務內容格式:分時日月周 命令/腳本
實例:
每天04:00
0 4 * * * 要執行的命令
週二和週五18:00
0 18 * * 2,5 要執行的命令
1月到3月份,週二和週五18:00
0 18 * 1-3 2,5 要執行的命令
週一到週五17:30發廣播,然後17:45分關機
寫兩條計劃任務,不是隻能寫一條
30 17 * * 1-5 /usr/bin/wall < /root/msg
45 17 * * 1-5 /sbin/shutdown -h now
中午12點到14點,每兩分鐘(偶數)
*/2 12-14 * * * 命令
1-59/2 (奇數)
寫命令時,有需要寫上出錯信息
例/bin/cp -r /etc /backup/etc.bak 2>>/backup/etc.bak.err
2表示錯誤信息
這6項,都不能爲空
3、特殊匹配符號
多個值用 “,”
連續的值用 “-”
任何匹配 “*”
步長 “/n”
4、執行命令
命令給出絕對路徑
用戶必須具有運行對應命令或程序的權限
保存在 /var/spool/cron
檢查crond進程是否開啓
ps-le | grep crond
/etc/rc.d/init.d/crondstart
5、權限設置
限制哪些用戶可以使有crontab
/etc/cron.allow
/etc/cron.deny