0x00 簡介
在LINUX中,周期執行的任務一般由cron這個守護進程來處理[ps -ef|grep cron]。cron讀取一個或多個配置文件,這些配置文件中包含了命令行及其調用時間。
cron的配置文件稱為“crontab”,是“cron table”的簡寫。
0x01 cron服務
cron是一個linux下 的定時執行工具,可以在無需人工干預的情況下運行作業。
- service crond start //啟動服務
- service crond stop //關閉服務
- service crond restart //重啟服務
- service crond reload //重新載入配置
- service crond status //查看服務狀態
0x02 配置
cron在3個地方查找配置文件:
2.1 /var/spool/cron/
這個目錄下存放的是每個用戶包括root的crontab任務,每個任務以創建者的名字命名。
比如tom建的crontab任務對應的文件就是/var/spool/cron/tom,一般一個用戶最多只有一個crontab文件。
2.2 /etc/crontab
這個文件負責安排由系統管理員制定的維護系統以及其他任務的crontab。
MAILTO=root:當 /etc/crontab 這個檔案中的例行性命令發生錯誤時,會將錯誤訊息或者是屏幕顯示的訊息傳給誰?
-
由於 root 並無法再用戶端收信,因此,我通常都將這個 e-mail 改成自己的賬號,好讓我隨時了解系統的狀態!
-
01 * * * * root run-parts /etc/cron.hourly:在 #run-parts 這一行以后的命令,我們可以發現,五個數字后面接的是 root ,這一行代表的是『執行的級別為root身份』
-
當然,你也可以將這一行改為成其他的身份!而 run-parts代表后面接的 /etc/cron.hourly 是『一個目錄內(/etc/cron.hourly)的所有可執行文件』。
-
也就是說,每個小時的01分,系統會以root身份去/etc/cron.hourly這個目錄下執行所有可執行的文件!后面三行也是類似的意思!你可以到 /etc/ 底下去看看,系統本來就預設了這4個目錄!你可以將每天需要執行的命令直接寫到/etc/cron.daily即可。
2.3 /etc/cron.d/
這個目錄用來存放任何要執行的crontab文件或腳本。
0x03 命令參數
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
選項 描述
e 編輯計划任務
l 列出計划任務
r 刪除計划任務
i 刪除之前確認
u 指明所屬用戶
0x04 常見用法
4.1 添加或更新crontab中的命令
crontab -e
添加或更新crontab中的命令
crontab -u username -e
默認情況下,系統會編輯當前登錄用戶的crontab命令集合。需要編輯其他用戶的命令集合,需要使用到如上的命令
4.2 查看已設置的Crontab命令
crontab -l
查看當前系統登錄用戶的Crontab命令集合
crontab -u username -l
查看其他用戶的Crontab命令集合
0x05 crontab文件內容分析
cat /etc/crontab
前四行是用來配置crond任務運行的環境變量
第一行SHELL變量指定了系統要使用哪個shell,這里是bash
第二行PATH變量指定了系統執行命令的路徑
第三行MAILTO變量指定了crond的任務執行信息將通過電子郵件發送給root用戶
如果MAILTO變量的值為空,則表示不發送任務執行信息給用戶
第四行的HOME變量指定了在執行命令或者腳本時使用的主目錄。
星號(*):代表所有可能的值,如month字段為星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。
小 結:
- 數字的表示最好用2為阿拉伯數字顯示
- 周和日最好不要同時用
- 定時任務要加注解
- 可以定向到日志文件或者空文件
- 定時任務一定是絕對路徑,且目錄必須存在才能出結果
- crontab 服務一定要開啟運行
0x06 參考鏈接
https://www.cnblogs.com/ftl1012/p/crontab.html
https://www.jianshu.com/p/3528b484302f
https://www.cnblogs.com/yanzi-meng/p/9156812.html