Linux定時任務一般使用crond服務,系統一般默認安裝有定時任務crond服務:
service crond status
基本語法
crontab [選項]
-e : 編輯或添加定時任務
-l : 查看系統的定時任務
-r : 刪除當前用戶所有的定時任務
示例:
[root@hadoop103 xiaomao]# crontab -l
*/10 * * * * /usr/sbin/ntpdate hadoop101
有一個定時任務,是每過10分鐘,執行/usr/sbin/ntpdate hadoop101 命令
該命令作用是去hadoop101機器更新時間(不在本文討論範圍)。
執行規則
定時任務 有5個 * : * * * * *, 後邊跟上要執行的具體任務。
項目 | 含義 | 範圍 |
---|---|---|
第一個“*” | 一小時中的第幾分鐘 | 0-59 |
第二個“*” | 一天當中的第幾個小時 | 0-23 |
第三個“*” | 一個月中的第幾天 | 1-31 |
第四個“*” | 一年中的第幾月 | 1-12 |
第五個“*” | 一週中的星期幾 | 0-7(0和7都代表星期日) |
示例:
45 22 * * * #在每天的22點執行
0 17 * * 1 #每週一的17點0分執行,此時周優先級高於天,所以雖然天設置爲* ,但並不是每天,每週一執行。
特殊符號
符號 | 含義 |
---|---|
* | 代表任何時間,比如第一個“*”,代表一個小時的每分鐘都執行一次 |
, | 代表連續的時間。比如:“08,12,16 * * * ” 表示在每天的8點0分, 12點0分,16點0分都執行一次 |
- | 代表連續的時間範圍。比如 “0 5 * * 1-6” ,表示在週一到週六的凌晨5點0分執行 |
/n | 代表每隔多久執行一次。比如:“*/10 * * * * ” 代表每隔10分鐘執行一次 |
示例:
*/10 4 * * * #每天的凌晨4點,每10分鐘執行一次。結果會是執行6次。
40 4 * * 1-5 #每週一到週五凌晨4點40分執行一次
0 0 1,15 * 1 #每月1號和15號,每週一的0點0分執行命令。注意星期幾和幾號最好不要同時出現,因爲都是代表天,很容易混亂。