linux定時任務的設置
爲當前用戶建立cron服務linux
例如 文件內容以下: */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh 保存文件並並退出 */2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh */2 * * * * 經過這段字段能夠設定何時執行腳本
/bin/sh /home/admin/jiaoben/buy/deleteFile.sh 這一字段能夠設定你要執行的腳本,這裏要注意一下bin/sh 是指運行 腳本的命令 後面一段時指腳本存放的路徑bash
用 crontab -l 命令
通常啓動服務用 /sbin/service crond start 如果根用戶的cron服務能夠用 sudo service crond start, 這裏仍是要注意下 不一樣版本linux系統啓動的服務的命令也不一樣 ,像個人虛擬機裏只需用 sudo service cron restart 便可,如果在根用下直接鍵入service cron start就能啓動服務
ps -ax | grep cron
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
任務調度的crond常駐命令
crond 是linux用來按期執行程序的命令。當安裝完成操做系統以後,默認便會啓動此
任務調度命令。crond命令每分鍾會按期檢查是否有要執行的工做,若是有要執行的工
做便會自動執行該工做。url
-u指定一個用戶 -l列出某個用戶的任務計劃 -r刪除某個用戶的任務 -e編輯某個用戶的任務
分 小時 日 月 星期 命令 0-59 0-23 1-31 1-12 0-6 command (取值範圍,0表示週日通常一行對應一個任務)
記住幾個特殊符號的含義:操作系統
「*」表明取值範圍內的數字, 「/」表明」每」, 「-」表明從某個數字到某個數字, 「,」分開幾個離散的數字
可用crontab -e命令來編輯,編輯的是/var/spool/cron下對應用戶的cron文件,也能夠直接修改/etc/crontab文件命令行
具體格式以下:
Minute Hour Day Month Dayofweek command
分鐘 小時 天 月 天每星期 命令rest
每一個字段表明的含義以下:
Minute 每一個小時的第幾分鐘執行該任務
Hour 天天的第幾個小時執行該任務
Day 每個月的第幾天執行該任務
Month 每一年的第幾個月執行該任務
DayOfWeek 每週的第幾天執行該任務
Command 指定要執行的程序code
在這些字段裏,除了「Command」是每次都必須指定的字段之外,其它字段皆爲可選
字段,可視須要決定。對於不指定的字段,要用「*」來填補其位置。crontab
舉例以下: 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命令[即每個月的一、十一、2一、31日是的6:30執行一次ls 命令。 ]
天天7:50以root 身份執行/etc/cron.daily目錄中的全部可執行文件虛擬機
50 7 * * * root run-parts /etc/cron.daily
[ 注:run-parts參數表示,執行後面目錄中的全部可執行文件。 ]test
新增調度任務可用兩種方法: 1. 在命令行輸入: crontab -e 而後添加相應的任務,wq存盤退出。 2. 直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務。
crontab -l //列出當前的全部調度任務 crontab -l -u jp //列出用戶jp的全部調度任務
crontab -r //刪除全部任務調度工做
例1:天天5:30執行ls命令,並把結果輸出到/jp/test文件中 30 5 * * * ls >/jp/test 2>&1 注:2>&1 表示執行結果及錯誤信息。 編輯/etc/crontab 文件配置cron
cron服務每分鐘不只要讀一次/var/spool/cron內的全部文件,還須要讀一次 /etc/crontab,所以咱們配置這個文件也能運用cron服務作一些事情。用crontab配置是針對某個用戶的,而編輯/etc/crontab是針對系統的任務。此文件的文件格式是:
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //若是出現錯誤,或者有數據輸出,數據做爲郵件發給這個賬號 HOME=/ //使用者運行的路徑,這裏是根目錄
01 * * * * root run-parts /etc/cron.hourly //每小時執行/etc/cron.hourly內的腳本 02 4 * * * root run-parts /etc/cron.daily //天天執行/etc/cron.daily內的腳本 22 4 * * 0 root run-parts /etc/cron.weekly //每星期執行 /etc/cron.weekly內的腳本 42 4 1 * * root run-parts /etc/cron.monthly //每個月去執行/etc/cron.monthly內的腳本
你們注意」run-parts」這個參數了,若是去掉這個參數的話,後面就能夠寫要運行的某個腳本名,而不是文件夾名了
例如: 1. 在命令行輸入: crontab -e 而後添加相應的任務,wq存盤退出。 2. 直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應的任務 11 2 21 10 * rm -rf /mnt/fb