at相關文件linux
var/spool/at/ ---at指令制定運行的工做排程會以文本的方式記錄到這個文檔中,等待atd執行vim
/etc/inid.d/atd ----atd服務程序安全
/etc/at.allow ----容許執行at命令的帳號(有這個文件就不會理/etc/at.deny)bash
/etc/at.deny ----禁止使用at命令的帳號(at.allow不存在纔會檢查這個文件),系統默認使用這個文件 網絡
cron相關文件app
/usr/bin/crontabui
/var/spool/cron/ ----相應的,這是cron的,不事後面還會以帳號做爲判斷【1-8】spa
/etc/cron.allow rest
/etc/cton.denyserver
/var/log/cron ----cron執行的每個例行工做杜輝記錄在這裏
/etc/crontab ----系統的例行性任務,編輯後也許須要從新啓動一下crond服務(/etc/init.d/crond restart)
ancron相關文件
/etc/anacrontab
/var/spool/anacron/*
linux上常見的例行性工做【1-1,2】
1. linux工做排程的種類:at,cron 【1-0】
A:僅執行一次的工做排程 at【1-3,4】
# /etc/init.d/atd restart ----啓動atd(linux系統中負責單一工做排程的服務)
# chkconfig atd on ----設置atd服務開機自動啓動
一.實際運做單一工做排程
案例一:再過五分鐘,將/root/.bashrc寄給root本身【1-5】
# at now + 5 minutes
at>/bin/mail root -s "testong at job" < /root/.bashrc
at><EOT> ----^d,表明結束
job 4 at 2013/11/30 15:38
案例二:將上述的at工做(第4個)內容列出來【1-6】
# at -c 4 ----第4號at工做實際執行的腳本內容
案例三:在2013/12/21 00:00關機
# at 00:00 2013-12-21
at>sync
at>sync
at>shutdown -h now
at><EOT>
job 5 at 2013-12-21 00:00
案例四:在2013/12/20 4:00在終端機/dev/tty1顯示「It is coming....」
# at 04:00 1013-12-20
at>echo "It is coming......" > /dev/tty1 ---at指令時和終端無關的,所以必須制定輸出到某個終端
at><EOT>
二:at工做的管理atq,atrm,batch
案例一:查詢目前主機上面有多少at工做排程
# atq ----查看工做排程
# atrm 5 ----將5號單一工做排程幹掉
案例二:讓系統有空時才進行背景任務
# batch 00:00 2013-12-21 ----和上面的案例三類似,仍是調用at來執行,不過會在cpu負載小於0.8是才執行,不然暫緩
at>sync
at>sync
at>shutdown -h now
at><EOT>
job 5 at 2013-12-21 00:00
# atq ---你看baech也是atq和atrm管理的
# atrm 6 ----假設該at任務爲6
B:循環執行的例行性工做排程
注意:crond服務是系統默認隨開機啓動的;cron執行的每個工做都會被記錄到/var/log/cron中,所以這個檢查這個文件有時候或許能夠查殺木馬
一:使用者設定例行工排程
案例一:用nemo身份天天12:00發信給本身
# crontab -e ----將進入vi編輯界面
#每項工做都是一行
0 12 * * * mail nemo -s "at 12:00" < /home/nemo/.bashrc ----minute hour day month week command【1-10】
案例二:每一年11月19號23:59發一封郵件給yxl
# crontab -e
#女友的生日
59 23 19 11 * mail -s "Happy birthday!" < /home/nemo/lover.txt
案例三:每5分鐘執行一次/home/nemo/test.sh
#crontab -e
* /5 **** /home/nemo/test.sh
案例四:每週六都和朋友有約,每週五16:30發一封郵件提醒他
# corn -e
30 16 * * 5 mail friend@his.server.name < /home/nemo/friend.txt
# cron -l ---查看當前帳號全部的cron工做
# cron -r ----刪除當前用戶全部的cron工做排程(刪除某個工做要cron -e在vi下刪除對應那一行)
二:系統例行工做排程
# cat /etc/crontab ----該檔案中記錄系統週期性例行任務【1-11]】
1.指令形態
注意:/ect/crontab這個檔案支持兩種指令下達的方式【1-12】
案例一:指令形態
01 × × × × nemo mail -s "testing" yxl < /home/nemo/test.txt ----以nemo的身份每小時執行一次這個mail指令
案例二:目錄規劃
× /5 × × × × root run-parts /root/runcrono ----每5分鐘以root身份執行一下/root/runcrono下的全部可執行文件
× /5 × × × × root run-parts /bin/mrtg /etc/mrtg/mrtg.cfg ----每5分鐘偵測一下網絡流量
2.一些注意事項
a:資源分配不均【1-13】
b:取消不要的輸出項目(數據流重導向)
c:安全檢驗(檢查/var/log/cron)
d:周與日月不可同時並存
三:可喚醒停機期間的工做任務 anacron
1.什麼是anacron【1-14,15】
# ll /etc/cron*/*ana* ----在天天、每週、每個月的排程目錄中都能找到anacron的腳本文件
# cat /etc/cron.daily/0anacron ----看一下腳本文件的內容
# cat /etc/anacrontab ----查看anacron執行文檔【1-16】
# more /var/spool/anacron/* ----查看anacron的執行記錄【1-17】
# anacron -a cro.daily ----運做流程【1-18】
# chkconfig --list anacron ----查看anacron是否會在開機時自動執行
2.重點回顧【1-19】
3.本章習題
習題一:工做排程中有一個指令產生不少不重要的信息,避免其發郵件給root
# vim /etc/crontab
* /3 * * * * root /usr/local/ping.sh > /dev/null 2>&1 ----標準錯誤信息和標準輸出信息都丟棄(分 時 日 月 周 執行者 指令)
習題二:2013/12/21 寄一封信給yxl
# at 1am 2013-12-21
at>/bin/mail yxl -s "I will be with you forever" < /home/nemo/lastword.txt
at><EOT>
習題三:每一個週一至週五的下午3:30執行如下/usr/local/bin/tea_time.sh
# cron -e
30 15 * * 1-5 /usr/local/bin/tes_time.sh
習題四:系統天天、每週、每個月各進行什麼樣的工做
# ll /etc/cron*
習題五:每一個星期六凌晨三點去系統搜尋一下內有SUID/SGID的任何檔案!並將結果輸出到/tmp/uidgid.files
# vim /etc/crontab
0 3 * * 6 root find / -perm +6000 > /tmp/uidgid.files