Crontab linux
在linux中,crontab的用來設置按期執行指定的命令,咱們能夠用它來指定一些須要重複的事情,Linux系統的用戶只需將想要按期要執行的命令序列加到crontab文件中,操做系統即會按用戶配置的時間執行這些命令序列。向crontab文件裏添加指令以前,須要檢查下crontab服務是否已啓動和是否開機自動啓動: shell
【查看狀態】spa
Linux 系統上面本來就有很是多的計劃性工做,所以這個系統服務是默認啓動的 操作系統
可使用service crond status進行查看狀態,下圖是我在cenos中查看到的狀態,能夠看到是正在運行的。 命令行
若是須要啓動crond服務,可使用 service crond start命令來進行服務的啓動 日誌
【設置開機自動啓動】 blog
咱們須要設置服務爲開機自啓動,通常是默認設置好的,咱們可使用ntsysv打開服務配置進行查看,以下圖所示,前邊有*表明已經選中,向下翻查看crond是否被選中。crontab
【命令格式】 ip
1.命令格式:it
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
2.命令功能:
經過crontab 命令,咱們能夠在固定的間隔時間執行指定的系統指令或 shell script腳本。時間間隔的單位能夠是分鐘、小時、日、月、周及以上的任意組合。這個命令很是設合週期性的日誌分析或數據備份等工做。
3.命令參數:
-u user:用來設定某個用戶的crontab服務,例如,"-u ixdba"表示設定ixdba用戶的crontab服務,此參數通常有root用戶來運行。
file:file是命令文件的名字,表示將file作爲crontab的任務列表文件並載入crontab。若是在命令行中沒有指定這個文件,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
-e:編輯某個用戶的crontab文件內容。若是不指定用戶,則表示編輯當前用戶的crontab文件。
-l:顯示某個用戶的crontab文件內容,若是不指定用戶,則表示顯示當前用戶的crontab文件內容。
-r:從/var/spool/cron目錄中刪除某個用戶的crontab文件,若是不指定用戶,則默認刪除當前用戶的crontab文件。
-i:在刪除用戶的crontab文件時給確認提示。
默認狀況下,系統全部用戶均可以使用crond服務。如需對crond服務的使用加限制,可使用配置文件/etc/cron.allow和 /etc/cron.deny,望文生義,cron.allow是容許使用crond服務的用戶清單,cron.deny裏的用戶則相反
crontab 文件中命令格式以下:
minute hour day-of-month month-of-year day-of-week commands
即:"分 時 日 月 周 命令",共計6段,前5段都是時間,最後一段纔是你要按期執行的指令。每段之間使用空格或者製表符分隔。
來看一下前5段即日期和時間的取值範圍:
1,分鐘[00-59] 2,小時[00-23] 3,日[01-31] 4,月份[01-12]
5,周[0-6] ;注意,這裏的0表示週日
上面這條指令裏使用了特殊符號"*",表明當前段取值範圍內的全部數字,如第3段上的"*"表明[01-31]日,第4段上的"*"表明[01-12]月。
特殊符號除了"*"號還有"/"、"-"、",":
/ 表明"每"的意思,如"/5"表示每5個單位;
- 用於表示一個範圍,如"[1-10]"表示從1到10;
, 用於表示若干離散的數字,如"5,15,25"
編輯crontab文件:
例子;crontab –e
以後直接編輯你想實現的操做,保存並退出。好比
00 09 * * 3 echo "Hello new day!" >> /tmp/book
咱們此時再使用crontab –l就能夠看到剛剛設置的東西。也能夠在/var/spool/cron目錄中查看到。文件名字就是用戶名。
爲了看一下最終效果我先設置一個能看出效果的例子,以下:
20 22 * * * echo "Good Night!" >> /tmp/book
結果以下:能夠看到,mybook文件中已經被寫入了Good Night