RHEL5系統中默認安裝了at、vixie-cron軟件包!可以通過atd和crond這兩個系統服務實現一次性和周期性任務計劃功能!對應的命令是at和crontab!
這裡我們只說一下at一次性任務計劃和crontab周期性任務設置
一:at一次性任務設置
顧名思義只能執行一次、前提是對應的atd服務已經啟動
例:確認系統服務已經運行、並設置atd服務在運行級別3、5中自動啟動
[root@localhost ~] # service atd status
[root@localhost ~] # service atd start
[root@localhost ~] # chkconfig --level 35 atd on
例:使用date命令確認當前系統時間、並設置在2009年5月18日的14:55分自動執行以下任務計劃:統計該時間點系統中由root用戶運行的進程的數量、並將該數值保存到/tmp/ps.root文件中
[root@localhost ~] # date //先查看以下當前系統的時間
[root@localhost ~] # at 14:55 2009-05-18
at> pgrep -U root | wc -l > /tmp/ps.root
at> <EOT> //任務設置完畢後按Ctrl+D組合鍵提交
job 1 at 2009-05-18 14:55
[root@localhost ~] # cat /tmp/ps.root //等過了計劃時間後驗證結果
63 //顯示的進程數
例:設置當天17:30自動關閉當前系統
[root@localhost ~] # at 17:30
at> shutdown -h now
at> <ETO>
查詢當前系統中設置的at計劃任務列表
[root@localhost ~] # atq
刪除指定任務編號的at任務
[root@localhost ~] # atrm 2 (刪除前使用atq查詢一下編號)
二:crontab周期性任務設置
顧名思義、周期性的執行、大大減少管理員的負擔!比如備份、必須使用的!前提不變、crond服務必須啟動!
由於服務必須啟動、所以要設置在3、5級別中自啟動
[root@localhost ~] # service crond status
[root@localhost ~] # chkconfig --level 35 crond on
使用crontab命令管理用戶的計劃任務
-e:編輯計劃任務列表
-u:指定所管理的計劃任務屬於哪個用戶,默認針對當前用戶、一般只有root用戶有權限設置
-l:列表顯示任務計劃
-r:刪除任務計劃列表
[root@localhost ~] # crontab -e打開任務編輯界面(與vi相同)
* * * * * * run_hurly_cmd
……
50 7 * * * ps aux | wc -l > /aa.txt
每一行有六個數據字段、這裡的五個*號各自的含義是:分、時、日、月、周
第二條帶數字的含義就是、每天的7:50執行後面的命令
此外還有一些特殊符號
“*” :表示任意時間、如果分鐘沒有定義表示每一分鐘都執行
“-” :表示一個連續的時間范圍,如1-4表示整數1、2、3、4
“,” :表示一個間隔的不連續范圍,如3,4,6,8
“/” :用來指定間隔頻率,如在日期字段“*/3”表示每隔3天
例:由root用戶設置一份crontab計劃任務列表,完成以下任務
每天早上7:50自動啟動sshd服務,22:50關閉sshd服務
每隔五天清空一次FTP服務器公共目錄/var/ftp/pub中的數據
每周六的7:30重啟系統中的httpd服務
每周一、三、五的下午17:30,使用tar命令備份/etc/httpd目錄
[root@localhost ~] # crontab -e
50 7 * * * /sbin/serice sshd start
50 22 * * * /sbin/service sshd stop
* * */5 * * /bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /sbin/service httpd restart
30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd
例:為jerry用戶設置計劃任務,在每周日晚上23:55將/etc/passwd文件的內容復制到宿主目錄中,保存為pwd.txt文件
[root@localhost ~] # crontab -e -u jerry
55 23 * * 7 /bin/cp /etc/passwd /home/jerry/pwd.txt
查看用戶的計劃任務列表
例:確認root用戶的計劃任務列表的內容
[root@localhost ~] # crontab -l
例:確認jerry用戶的計劃任務列表的內容
[root@localhost ~] # crontab -l -u jerry
例:使用jerry用戶登錄後、查看並刪除自己的計劃任務列表
[jerry@localhost ~] $ crontab -l //查看
[jerry@localhost ~] $ crontab -r //刪除
[jerry@localhost ~] $ crontab -l //再次查看驗證
這是簡單的任務計劃、實際生活中的任務計劃都是加載shell腳本來實現的!下一節說一下shell腳本的簡單編寫!
本文出自 “天道酬勤-常雙陽” 博客