Linux中的crontab命令用法

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

相關文章
相關標籤/搜索