1. 程式人生 > >定時任務crontab

定時任務crontab

cron 文本文 .sh 不同 值範圍 1-1 var 例如 /tmp

計劃任務分為兩類:系統級和用戶級

無論是系統級還是用戶級的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