1、簡介
cron是一個在后臺運行調度的守護行程,而crontab是一個設定cron的工具,cron調度的是/etc/crontab檔案,

2、centos安裝crontab
yum install crontabs
3、crontab的組態檔
Linux下的任務調度分為兩類:系統任務調度和用戶任務調度,Linux系統任務是由 cron (crond) 這個系統服務來控制的,這個系統服務是默認啟動的,用戶自己設定的計劃任務則使用crontab 命令,在CentOS系統中,
cat /etc/crontab
組態檔可以看到如下解釋:

前三行:用來配置crond任務運行的環境變數,
第一行:SHELL變數指定了系統要使用哪個shell,這里是bash;
第二行:PATH變數指定了系統執行命令的路徑;
第三行:MAILTO變數指定了crond的任務執行資訊發送給root用戶,如果MAILTO變數的值為空,則表示不發送任務執行資訊給用戶;
用戶可以使用 crontab 工具來定制自己的計劃任務,所有用戶定義的crontab 檔案都被保存在 /var/spool/cron目錄中,其檔案名與用戶名一致:

4、crontab命令詳解
格式:
crontab [-u user] file crontab [ -u user ] [ -i ] { -e | -l | -r }
說明:
crontab –e //修改 crontab 檔案,如果檔案不存在會自動創建, crontab –l //顯示 crontab 檔案, crontab -r //洗掉 crontab 檔案, crontab -ir //洗掉 crontab 檔案前提醒用戶, service crond status //查看crontab服務狀態 service crond start //啟動服務 service crond stop //關閉服務 service crond restart //重啟服務 service crond reload //重新載入配置
取消某個定時任務:
洗掉在組態檔中的對應命令,即 crontab -e 打開檔案,然后洗掉對應哪行的命令即可
5、定時任務的基本格式(即crontab -e使用說明)
* * * * * command 分 時 日 月 周 命令
第1串列示分鐘 00~59 每分鐘用*或者 */1表示
第2串列示小時 00~23(0表示0點)
第3串列示日期 01~31
第4串列示月份 01~12
第5列標識號星期 0~6(0表示星期天)
第6列要運行的命令
此外每一列除了數字,還可以有這些符號,其含義如下所示:
* 代表任何時間,比如第一個 * 就代表一小時中的每分鐘都執行 , 代表不連續的時間,比如 0 8,12,16 * * * 代表每天8,12,16點0分執行 - 代表連續的時間范圍,比如0 5 * * 1-6 代表在周一到周六凌晨5點0分執行 */n 代表每個多久執行一次,比如*/10 * * * *代表每隔10分鐘執行一次
示例:
(1)在 凌晨00:10運行
10 0 * * * sh test.sh
(2)每個作業日23:59都進行備份作業
59 23 * * 1,2,3,4,5 sh test.sh 或者 59 23 * * 1-5 sh test.sh
(3)每分鐘運行一次命令
*/1 * * * * sh test.sh
(4)每個月的1號 14:10 運行
10 14 1 * * sh test.sh
(5)每10分鐘定時請求一個地址
0 */10 * * * /usr/bin/curl http://www.aaa.com/index.php
6、 crontab 日志
tail -f /var/log/cron
7、Q&A--crontab定時任務腳本不執行?
(1)全路徑,crontab定時任務(crontab -e編輯中涉及的路徑)要寫全路徑,全路徑!
(2)執行權限,看日志,cat /var/log/cron,如果日志中有執行記錄可能是腳本沒有執行權限,
8、應用
實作每分鐘向檔案寫入一條資料的效果:

Only action can relieve the uneasiness.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/548543.html
標籤:其他
