創建周期性任務 cron

?本篇中主要從具體的實例中說明怎樣創建計劃任務

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任務。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Linux定時任務Crontab命令詳解 linux 系統則是由 cron (crond) 這個系統服務來控制的。...
    孫燕超閱讀 1,839評論 0 4
  • 前一天學習了 at 命令是針對僅運行一次的任務,循環運行的例行性計劃任務,linux系統則是由 cron (cro...
    Zcclucky閱讀 592評論 0 0
  • 1.安裝cron yum install vixie-cron yum install crontabs vixi...
    Broom閱讀 1,277評論 0 1
  • Linux定時任務Crontab命令詳解linux 系統則是由 cron (crond) 這個系統服務來控制的。L...
    時待吾閱讀 409評論 0 0
  • Linux 系統提供了使用者控制計劃任務的命令 :crontab 命令。 一、crond簡介 crond是linu...
    happeace閱讀 1,802評論 0 53