1、簡介 cron是一個在後臺運行調度的守護進程,而crontab是一個設置cron的工具。cron調度的是/etc/crontab文件。 2、centos安裝crontab yum install crontabs 3、crontab的配置文件 Linux下的任務調度分為兩類:系統任務調度和用戶任 ...
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.