一、查看crontab定時執行任務列表shell
crontab -l
二、編輯crontab定時執行任務bash
crontab -e
三、刪除crontab定時任務spa
crontab -r
四、相關命令:rest
sudo service crond start #啓動服務 sudo service crond stop #關閉服務 sudo service crond restart #重啓服務 sudo service crond reload #從新載入配置 sudo service crond status #查看服務狀態
crontab 的時間表達式:日誌
基本格式 : * * * * * command 分 時 日 月 周 命令
先來看一個例子。天天凌晨1:00執行備份程序:0 1 * * * /root/wzfou.com/backup.sh
。其中/root/wzfou.com/backup.sh
這是腳本路徑,要使用絕對路徑,前面的日期格式請直接看下圖就知道了。code
crontab還有操做符,用來實現一些複雜的時間設定須要。操做符有:blog
一、* 取值範圍內的全部數字 ,表明全部。crontab
二、/ 每過多少個數字 ,表明每隔n長時間。it
三、- 從X到Z ,表明一段時間範圍。變量
四、,散列數字,表明分割開多個值。
PS:2018年4月15日更新,感謝好友雲落提醒,若是還有搞不懂代碼公式的,能夠使用這個在線Cron表達式生成器:http://cron.qqe2.com/
實例1:每1分鐘執行一次
* * * * * /mnt/backup.sh
實例2:每小時的第3和第15分鐘執行一次
3,15 * * * * /mnt/backup.sh
實例3:天天的8點到11點的第3和第15分鐘執行一次
3,15 8-11 * * * /mnt/backup.sh
實例4:每隔兩天的上午8點到11點的第3和第15分鐘執行一次
3,15 8-11 */2 * * /mnt/backup.sh
實例5:每週一上午8點到11點的第3和第15分鐘執行一次
3,15 8-11 * * 1 /mnt/backup.sh
實例6:每晚的21:30執行一次
30 21 * * * /mnt/backup.sh
實例7:每個月一、十、22日的4 : 45執行一次
45 4 1,10,22 * * /mnt/backup.sh
實例8:每週6、週日的1 : 10執行一次
10 1 * * 6,0 /mnt/backup.sh
實例9:天天18 : 00至23 : 00之間每隔30分鐘執行一次
0,30 18-23 * * * /mnt/backup.sh
實例10:每星期六的晚上23: 00 pm執行一次
0 23 * * 6 /mnt/backup.sh
實例11:每一小時執行一次
* */1 * * * /mnt/backup.sh
實例12:天天晚上23點到次日7點之間,每隔一小時執行一次
* 23-7/1 * * * /mnt/backup.sh
實例13: 每一個星期的第一天執行一次(即每一個星期天晚上24:00開始執行).
@weekly /mnt/backup.sh
實例14:每月的15日執行一次.
0 11 15 * * /mnt/backup.sh
實例15:每月的第一天執行一次(即每月的1日凌晨0點開始執行).
@monthly /mnt/backup.sh
實例16: 在指定的月份執行一次(在1月,4月和 6月天天晚上0點執行一次).
0 0 * jan,apr,jun * /mnt/backup.sh
實例17: 重啓後執行一次.
@reboot /mnt/backup.sh
實例18:定時任務執行後發一封郵件通知.
MAILTO="raj"
1 1 * * * /mnt/backup.sh
實例19:指定shell (默認的是/bin/bash)
SHELL=/bin/sh
1 1 * * * /mnt/backup.sh
實例20:指定環境變量.
PATH=/sbin:/bin:/usr/sbin:/usr/bin
1 1 * * * /mnt/backup.sh
你們新建的Crontab定時任務保存後須要等待2分鐘後纔會執行,固然若是想要當即執行能夠重啓Crontab。當crontab失效時,能夠嘗試/etc/init.d/crond restart解決問題,或者查看日誌看某個任務有沒有執行/報錯tail -f /var/log/cron。
腳本中涉及文件路徑時寫全局路徑,更新系統時間時區後須要重啓cron。當手動執行腳本OK,可是crontab死活不執行時頗有多是環境變量,可嘗試在crontab中直接引入環境變量解決問題,例如:
0 * * * * . /etc/profile;/bin/sh /root/wzfou.com/backup.sh
要注意系統級任務調度與用戶級任務調度。只有 root 用戶和 crontab 文件的全部者能夠在 -e 、-l、-r 和 -v標誌後面使用 UserName 以編輯、列出、除去或驗證指定用戶的 crontab 文件。
root用戶的任務調度操做能夠經過」crontab –uroot –e」來設置,也能夠將調度任務直接寫入/etc/crontab文件。
想編輯別的用戶的 crontab, 使用root運行下面的命令,同一個格式 (追加 「-u username」 到命令後) 也能夠用來列出或刪除 crontabs。
crontab -u username -e
當Crontab定時任務在你所指定的時間執行後,系統會寄一封信給你,顯示該程序執行的內容,能夠在日誌中/var/log/cron看到。如果你不但願收到這樣的通知,請在每一行空一格以後加上 > /dev/null 2>&1
便可