定時任務crontab
計劃任務分為兩類:系統級和用戶級
無論是系統級還是用戶級的cron計劃都是文本文件,系統的計劃文件存放在/etc/crontab路徑下。用戶的計劃文件放在/var/spool/cron/用戶名,不管是哪一種,都可以滿足我們定制計劃任務的需求。root用戶可以直接對文件進行修改來編寫計劃任務也可以使用 crontab -e命令,而普通用戶只能使用後者。
crontab任務配置基本格式: * * * * * command
* * * * * /usr/bin/sh /root/check.sh 舉例,執行命令/usr/bin/sh最好用絕對路徑
tail -f /var/log/cron 查看計劃任務的日誌
1. 鍵入 crontab -e 編輯crontab服務文件
2. 查看該用戶下的crontab服務是否創建成功, 用 crontab -l 命令
3. 啟動crontab服務
一般啟動服務用 /sbin/service crond start 若是根用戶的cron服務可以用 sudo service crond start, 這裏還是要註意 下不同版本linux系統啟動的服務的命令也不同 ,有的虛擬機裏只需用 sudo service cron restart 即可,若是在根用下直接鍵入service cron start就能啟動服務。
4. 查看服務是否已經運行用 ps -ax | grep cron
5. crontab命令
cron服務提供crontab命令來設定cron服務的,以下是這個命令的一些參數與說明:
crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
crontab -l //列出某個用戶cron服務的詳細內容
crontab -r //刪除沒個用戶的cron服務
crontab -e //編輯某個用戶的cron服務
root查看自己的cron設置:crontab -u root -l
root想刪除fred的cron設置:crontab -u fred -r
在編輯cron服務時,編輯的內容有一些格式和約定,輸入:crontab -u root -e ,進入vi編輯模式,編輯的內容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
7. cron文件語法:
分 小時 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值範圍,0表示周日一般一行對應一個任務)
記住幾個特殊符號的含義:
"*"代表取值範圍內的數字,
"/"代表”每”,
"-"代表從某個數字到某個數字,
","分開幾個離散的數字
8. 任務調度設置文件的寫法
可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也可以直接修改/etc/crontab文件
具體格式如下:
Minute Hour Day Month Dayofweek command
分鐘 小時 天 月 天每星期 命令
舉例如下:
5 * * * * ls 指定每小時的第5分鐘執行一次ls命令
30 5 * * * ls 指定每天的 5:30 執行ls命令
30 7 8 * * ls 指定每月8號的7:30分執行ls命令
30 5 8 6 * ls 指定每年的6月8日5:30執行ls命令
30 6 * * 0 ls 指定每星期日的6:30執行ls命令[註:0表示星期天,1表示星期1, 以此類推,也可以用英文來表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號及20號的3:30執行ls命令[註:“,”用來連接多個不連續的時段]
25 8-11 * * * ls 每天8-11點的第25分鐘執行ls命令[註:“-”用來連接連續的時段]
*/15 * * * * ls 每15分鐘執行一次ls命令 [即每個小時的第0 15 30 45 60分鐘執行ls命令 ]
30 6 */10 * * ls 每個月中,每隔10天6:30執行一次ls命令[即每月的1、11、21、31日是的6:30執行一次ls 命令。 ]
每天7:50以root 身份執行/etc/cron.daily目錄中的所有可執行文件
50 7 * * * root run-parts /etc/cron.daily [ 註:run-parts參數表示,執行後面目錄中的所有可執行文件。 ]
定時任務crontab