1. 程式人生 > >linux計劃任務之crontab

linux計劃任務之crontab

語法:
       crontab [ -u user ] file
       crontab [ -u user ] [ -i ] { -e | -l | -r }

說明:

      crontab命令是為個人使用者用於設定週期性被執行的指令。每一個使用者都可以有自己的crontab。

      如果/etc/cron.allow檔案存在,該檔案中所列使用者允許使用crontab命令。

      如果/etc/cron.allow檔案不存在,而/etc/cron.deny檔案存在,該檔案中所列使用者不允許使用crontab命令。

      如果 /etc/cron.allow和 /etc/cron.deny 都不存在,   根據配置引數的不同,僅有超級使用者允許使用這個命令或者所有的使用者都允許使用。

      如果 /etc/cron.allow和 /etc/cron.deny 都存在,/etc/cron.allow的優先順序大於/etc/cron.deny,因此/etc/cron.deny可以被忽略,但是如果想使用此命令,必須在/etc/cron.allow中明確列出使用者。

      /var/spool/cron/,所有使用者crontab檔案存放的目錄,以使用者名稱命名。

引數:

     -u:用來設定某個使用者的crontab服務,例如,“-u liujl”表示設定liujl使用者的crontab服務,此引數一般有root使用者來執行。

     -l:顯示某個使用者的crontab檔案內容,如果不指定使用者,則表示顯示當前使用者的crontab檔案內容。

     -r:從/var/spool/cron目錄中刪除某個使用者的crontab檔案,如果不指定使用者,則預設刪除當前使用者的crontab檔案。

     -e:編輯某個使用者的crontab檔案內容。如果不指定使用者,則表示編輯當前使用者的crontab檔案。

     -i:在刪除使用者的crontab檔案時給確認提示。

     file:file是命令檔案的名字,表示將file做為crontab的任務列表檔案並載入crontab。如果在命令列中沒有指定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將它們載入crontab。

crontab使用方法:

     crontab每項(行)工作的格式:

意義 分鐘 小時 星期 命令
範圍 0-59 0-23 1-31 1-12 0-6 執行的命令

在使用時,會用到幾種輔助字元,先說明如下:

特殊字元

意義

*

代表任意匹配,例如“** * * /bin/execute/this/script.sh代表:每一分鐘,每一小時,每天,每月,一週的每一天都執行/bin/execute/this/script.sh這個命令,簡單的說是:每一分鐘都執行此命令,沒有例外。

代表分割時段,比如每10分鐘執行一次命令?可以使用

01020304050* * * * command

引數欄數不變,但是第一欄是01020304050,以逗號(,)分割。

-

代表一段時間範圍內,比如工作日(週一至週五)凌晨1點執行某一個命令?

*1 * * 1-5 command

第五欄為1-5,代表12345都適用的意思。

/n

n代表數字,為每隔n單位間隔。例如上文逗號(,)中舉例,每10分鐘執行一次命令,可以這樣寫:

*/10* * * * command

第一欄為*/10,不要忘了*不能省略。

1). 建立一個新的crontab檔案

在考慮向cron程序提交一個crontab檔案之前,首先要做的一件事情就是設定環境變數EDITOR。cron程序根據它來確定使用哪個編輯器編輯crontab檔案。99%的UNIX和LINUX使用者都使用vim,如果你也是這樣,那麼你就編輯$HOME目錄下的. profile檔案,在其中加入這樣一行:EDITOR=vim; export EDITOR

然後儲存並退出。不妨建立一個名為<user> cron的檔案,其中<user>是使用者名稱,例如, davecron。在該檔案中加入如下的內容。

# (put your own initials here)echo the date to the console every

# 15minutes between 6pm and 6am

0,15,30,45 18-06 * * * /bin/echo 'date' > /dev/console

    儲存並退出。確信前面5個域用空格分隔。

在上面的例子中,系統將每隔1 5分鐘向控制檯輸出一次當前時間。如果系統崩潰或掛起,從最後所顯示的時間就可以一眼看出系統是什麼時間停止工作的。在有些系統中,用tty1來表示控制檯,可以根據實際情況對上面的例子進行相應的修改。為了提交你剛剛建立的crontab檔案,可以把這個新建立的檔案作為cron命令的引數:

$ crontab davecron

現在該檔案已經提交給cron程序,它將每隔1 5分鐘執行一次。

同時,新建立檔案的一個副本已經被放在/var/spool/cron目錄中,檔名就是使用者名稱(即dave)。

2). 列出crontab檔案

   為了列出crontab檔案,可以用:

$ crontab -l

0,15,30,45,18-06 * * * /bin/echo `date` > dev/tty1

你將會看到和上面類似的內容。可以使用這種方法在$ H O M E目錄中對crontab檔案做一備份:

$ crontab -l > $HOME/mycron

    這樣,一旦不小心誤刪了crontab檔案,可以用上一節所講述的方法迅速恢復。

3). 編輯crontab檔案

   如果希望新增、刪除或編輯crontab檔案中的條目,而EDIT環境變數又設定為vim,那麼就可以用vim來編輯crontab檔案,相應的命令為:

$ crontab -e

可以像使用v i編輯其他任何檔案那樣修改crontab檔案並退出。如果修改了某些條目或添加了新的條目,那麼在儲存該檔案時, c r o n會對其進行必要的完整性檢查。如果其中的某個域出現了超出允許範圍的值,它會提示你。

我們在編輯crontab檔案時,沒準會加入新的條目。例如,加入下面的一條:

# DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month

30 3 1,7,14,21,26 * * /bin/find -name "core' -exec rm {} \;

現在儲存並退出。最好在crontab檔案的每一個條目之上加入一條註釋,這樣就可以知道它的功能、執行時間,更為重要的是,知道這是哪位使用者的作業。

現在讓我們使用前面講過的crontab -l命令列出它的全部資訊:

$ crontab -l 

# (crondave installed on Tue May 4 13:07:43 1999)

# DT:ech the date to the console every 30 minites

0,15,30,45 18-06 * * * /bin/echo `date` > /dev/tty1

# DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month

30 3 1,7,14,21,26 * * /bin/find -name "core' -exec rm {} \;

4). 刪除crontab檔案

要刪除crontab檔案,可以用:

$ crontab -r

5). 恢復丟失的crontab檔案

如果不小心誤刪了crontab檔案,假設你在自己的$

HOME目錄下還有一個備份,那麼可以將其拷貝到/var/spool/cron/<username>,其中<username>是使用者名稱。如果由於許可權問題無法完成拷貝,可以用:    

$ crontab <filename>

其中,<filename>是你在$HOME目錄中副本的檔名。

我建議你在自己的$HOME目錄中儲存一個該檔案的副本。我就有過類似的經歷,有數次誤刪了crontab檔案(因為r鍵緊挨在e鍵的右邊)。這就是為什麼有些系統文件建議不要直接編輯crontab檔案,而是編輯該檔案的一個副本,然後重新提交新的檔案。

有些crontab的變體有些怪異,所以在使用crontab命令時要格外小心。如果遺漏了任何選項,crontab可能會開啟一個空檔案,或者看起來像是個空檔案。這時敲delete鍵退出,不要按<Ctrl-D>,否則你將丟失crontab檔案。

簡單的例子:
● 0 */2 * * * /sbin/service httpd restart 

每兩個小時重啟一次apache

● 50 7 * * * /sbin/service sshd start

每天7:50開啟ssh服務

● 50 22 * * * /sbin/service sshd stop 

每天22:50關閉ssh服務

● 0 0 1,15 * * fsck /home 

每月1號和15號檢查/home 磁碟

● 1 * * * * /home/bruce/backup 

每分鐘都執行 /home/bruce/backup這個檔案

● 00 03 * * 1-5 find /home "*.xxx" -mtime +4 -exec rm {} \; 

每週一至週五凌晨3點,在目錄/home中,查詢檔名為*.xxx的檔案,並刪除4天前的檔案。
● 30 6 */10 * * ls

每月的1、11、21、31日是的6:30執行一次ls命令

相關推薦

linux計劃任務crontab

語法:        crontab [ -u user ] file        crontab [ -u user ] [ -i ] { -e | -l | -r } 說明:       crontab命令是為個人使用者用於設定週期性被執行的指令。每一個使用者都可以有

Linux計劃任務at&batch&crontab

at 計劃任務 batch 計劃任務 執行一次某任務:at,batch 周期性運行某任務:crontab 1.at命令,只執行一次 at/atq/atrm/batch at [option]... time HH:MM[YYYY-mm-dd]

linux計劃任務crontab

定時 幾分鐘 bsp 命令 時間 第一個 分鐘 lin log 系統定時任務 croond服務管理與訪問控制 systemctl start crond.service 開啟crond服務 crontab -e 進入crontab編輯界面 * * * * * 執行的任務 第

【轉】Linux定時任務crontab

數據備份 res 整數 用戶數 mailto 加載 -c 維護 mini linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以,

Linux計劃任務crontab設定詳解

crontab檔案的格式: minute hour day month weekday username command minute:分,值為0-59 hour:小時,值為1-23 day:天,值為1-31 month:月,值為1-12 weekday:星期,值為0-6(0代表星期天,1代表星期一,以此類推

Linux定時任務crond/crontab

定時任務,顧名思義即固定一段時間執行一次某任務。 例如手機設定的鬧鐘、定時開關機等都屬於定時任務,那麼Linux要如何設定定時任務呢? crontab 首先認識crontab,該

編輯crontab新增Linux計劃任務

在做實驗樓的比賽時的題目 用到了crontable 1. 為使用者shiyanlou新增一個計劃任務 2. 每天凌晨2點定時執行 3. 將/var/log/dpkg.log /var/log/mysql.log /var/log/fontconfig.lo

Linux下的計劃任務crontab命令詳解

前一天學習了 at 命令是針對僅執行一次的任務,迴圈執行的例行性計劃任務,linux系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是預設啟動的。另外, 由於使用者自己也可以設定計劃任務,所以, Linux 系統也提供了使用者控制

Linux 計劃任務 Crontab

spa 次數 linu cront mage nbsp inf 計劃 ron 命令:   crontab -e  編輯/創建任務   crontab -l  查看任務 格式:   分鐘 小時 日 月 星期 命令 eg:    mysql 備份 每天17:

Linux計劃任務

crontab linux 開機自動啟動服務Centos7:systemctl is-enabled "servicename" systemctl enabled "servicename"(設為開機啟動)Centos6:chkconfig --

linux計劃任務 進程管理

linux 計劃任務 進程管理 crond 是linux用來定期執行程序的命令。當安裝完成操作系統之後,默認便會啟動此任務調度命令。crond命令每分鍾會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。可以用以下的方法啟動、關閉這個服務: /sbin/service crond

linux計劃任務,系統日誌,故障處理

badblock 解決 用戶驗證 排查 名稱 輸出 分鐘 message 計劃任務管理 計劃任務管理 At 一次性任務設置。 服務腳本:/etc/init.d/atd 使用方法; #at 13:00

linux-計劃任務

emp eboot 4.4 operation edi tab 編輯 pro ubunt 計劃任務 環境:ubuntu-16.04.4-server-amd64 crontab [-u user] file crontab [ -u user ] [

Weblogic計劃任務重啟腳本

tst critical erro dmi 環境 判斷 interval pro 僵屍進程 只需要在服務器上創建兩個文件即可:1、vim config.txt **** JAVA ***** AIX平臺的JAVA常為:/usr/java5/bin/java Linux平臺的

linux計劃任務(轉)

level 郵件 file 配置 nta 但是 路徑和 去掉 無法自動 文章轉自https://blog.csdn.net/jixieyang3701/article/details/79410725 linux 系統則是由 cron (crond) 這個系統服務來控制的。

Linux計劃任務刪除一定期限的檔案

30 03 * * *  find /WEBBAK/*  -maxdepth 1  -mtime +2 | xargs rm -rf -mtime +2 查詢檔案更新日時在距現在時刻2天以內的檔案 -mtime -2  查詢檔案更新日時在

Linux. 計劃任務 時間格式

Linux. 計劃任務 時間格式     在linux中執行指令:cat /etc/crontab   結果,如下圖所示:        結果一目瞭然,不多說。   如有問題,歡迎糾正!!! 如有轉載,請標明源處:https://www.cnblogs.com/

sort命令、linux計劃任務

一、sort的工作原理 sort將檔案的每一行作為一個單位,相互比較,比較原則是從首字元向後,依次按ASCII碼值進行比較,最後將他們按升序輸出。 引數 作用 -n 數值排序 -r 降序 -t 欄位分隔符 -k 以哪個欄位為關鍵字進行排序 -u 排序後相同的行只顯示一次 -f 排序時忽略字元

紅帽認證學習筆記-Linux計劃任務cron配置

紅帽認證學習筆記–Linux計劃任務cron配置 cron: 計劃任務,是任務在約定的時間執行已經計劃好的工作, 這是表面的意思。在Linux中,我們經常用到 cron 伺服器來完成這項工作。cron伺服器可以根據配置檔案約定的時間來執行特定的

linux 計劃任務 at or crond

at:一次性計劃任務 yum install at  -y    //下載計劃任務 systemctl start atd.service    //啟動at systemctl status atd.service&nbs