?本篇中主要從具體的實例中說明怎樣創建計劃任務
1,周期性任務計劃:cron
(1)相關的程序包:默認已安裝
使用?rpm –qi cronie?查看相關包具體信息
cronie:?主程序包,提供crond守護進程及相關輔助工具
cronie-anacron:?cronie的補充程序,用于監控cronie任務執行狀況,如cronie中的任務在過去該運行
(2)計劃周期性執行的任務提交給crond,到指定時間會自動運行
系統cron任務:系統維護作業
(3)要確保crond守護處于運行狀態:查看crond服務是否啟動
????CentOS 7:
? ? systemctl status crond?查看是否啟動
? ? ? ?systemctl start ?crond?啟動方法
????CentOS 6:
? ?service crond status查看是否啟動
? ? service crond start啟動方法
(4)系統cron任務:系統維護作業
/etc/crontab?將計劃任務寫入該文件
用戶cron任務:
crontab命令?使用crontab命令創建
(5)日志:?/var/log/cron?監控計劃任務
2.系統計劃任務
(1)查看任務 ?vim ?/etc/crontab
示例:每隔10分鐘執行一次磁盤空間檢查和磁盤節點號檢查,一旦發現任何分區利用率大于80就執行wall警報
1、解釋:第1位 */10 表示每10分鐘執行一次(注意,*/#這里#僅限能被60 整除的數,如 */12 表示每12分執行一次)
第2位*?小時,*代表每個小時都要執行,2代表凌晨兩點執行,20代表晚上8點執行(24小時制)?
????????第3位*日,*代表每天執行,4?表示每月4號執行。20代表每月20號執行(1-31天)
????????第4位*月,*代表每月都執行,1代表一月,2代表2月?(1-12月)
????????第5位*星期幾,*代表任意一天,1表示星期一,(0-7,0和都表示星期日)
????????第6位root?表示執行人是root
????????第7位/root/bin 執行的操作,可以是一條命令,也可以是腳本名稱,注意這里寫上完整的路徑。
2.腳本示范
注意:(1)沒有被重定向的輸出會被郵寄給用戶
(2)根用戶root能夠修改其它用戶的作業
(3)運行結果的標準輸出和錯誤以郵件通知給相關用戶
? ?執行的命令結果最好導入垃圾桶中
? ?COMMAND &> /dev/null
(4)對于cron任務來講,?%有特殊用途;如果在命令中要使用%,則需要轉義,將%放置于單引號中,則可不用轉義
?建議將執行的操作寫入腳本中,不要直接寫在/etc/crontab中
(5)命令在寫入腳本或者/etc/crontab之前,建議先做測試
(6)這里寫完腳本后要把腳本加上執行權限,chmod +x checkdisk.sh(腳本名)
3.用戶周期性任務
(1)用戶cron:
crontab命令定義,每個用戶都有專用的cron任務文件:/var/spool/cron/USERNAME
crontab命令:本身有suid?權限
crontab [-u user] [-l | -r | -e] [-i]
-l:?列出所有任務;
-e:?編輯任務;
?* * * * * wall I am?
-r:?移除所有任務;
-i:同-r一同使用,以交互式模式移除指定任務
-u user:?僅root可運行,指定用戶管理cron任務
??????????????????????????? ?? crontab –e –u mage
(2)例子1:普通用戶liyi ?每分鐘廣播一次hello
? ? ? ? ?切換到liyi ?用戶下?su – liyi
切換到root用戶下,exit,進入/var/spool/cron/ ,可以看到guan用戶創建的任務,當然root用戶可以修改和刪除普通用戶的計劃任務。
4.控制用戶執行計劃任務
????控制用戶執行計劃任務:??/etc/cron.{allow,deny}
???????白名單: /etc/cron.allow 默認不存在,只有該文件中的用戶才能執行crontab命令
???????黑名單:/etc/cron.deny?默認存在,拒絕該文件中用戶執行crontab命令,?而沒有在cron.deny?文件中的使用者則可執行
? ? ?如果兩個文件都不存在,只有root?可以執行?crontab?命令
? ? ? ? ? ?解釋:先看/etc/cron.allow文件,如果有,則只看/etc/cron.allow文件,只有/etc/cron.allow中的用戶才能執行,如果沒有該文件,則查看/etc/cron.deny文件。除/etc/cron.deny中的用戶之外的用戶都可以創建cron任務,如果兩個文件都不存在,則僅root可以創建cron任務。