crontab使用說明【一文搞懂Linux定時任務Crontab】

1、簡介

cron是一個在後臺運行調度的守護進程,而crontab是一個設置cron的工具。cron調度的是/etc/crontab文件。

crontab用法與實例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、應用

實現每分鐘向文件寫入一條數據的效果:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章