1. 程式人生 > >Linux下的crontab的使用方法

Linux下的crontab的使用方法

如果提示:-bash: crontab: command not found,表示沒有安裝crontab,需要手動安裝。

安裝crontab:

1. 確認crontab是否安裝: 執行 crontab 命令如果報 command not found,就表明沒有安裝 2. 安裝 crontab 執行 yum install -y vixie-cron 3. 確認是否安裝成功: 執行 crontab -l 4. 看是否設定了開機自動啟動 chkconfig --list crond 5. 啟動crontab service crond start

Linux下定時任務程序:

ps -ef|grep cron

【命令格式】

1.命令格式:

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 內容格式:

min hour day month week command

即:"分 時 日 月 周 命令",共計6段,前5段都是時間,最後一段才是你要定期執行的指令。每段之間使用空格或者製表符分隔。

排程命令的規則:

欄位名稱 說明 取值範圍
分鐘 每小時的第幾分鐘執行 0-59
小時   每日的第幾個小時執行 0-23
日期 每月的第幾天執行 1-31
月曆 每年的第幾月執行 1-12
星期 每週的第幾天執行 0-6
命令名稱 欲執行的命令及引數

crontab命令中的一些常用特殊符號:

符號  說明
* 表示任何時刻
, 表示分割
表示一個段,如第二段裡: 1-5,就表示1到5點
/n 表示每個n的單位執行一次,如第二段裡,*/1, 就表示每隔1個小時執行一次命令。也可以寫成1-23/1.

例項:

crontab -e開啟編輯介面:

10 * * * * /user/bin/start :每個小時的10分執行指令碼

0 2 * * * /user/bin/start : 每天的2:00執行指令碼

0 2 5 * * /user/bin/start :每個月5號的2:00執行指令碼

0 2 5 3 * /user/bin/start : 每年3月5號的2:00執行指令碼 (月可以用數字,也可以用英文縮寫如mar代替)

0 2 5 3 1 /user/bin/start : 每年3月5號和每逢週一的2:00 執行指令碼(星期可以用數字或縮寫代替,如mon)

*/10 * * * * /user/bin/start :每10分鐘執行一次指令碼

* 0-10/2 * * * /user/bin/start: 每天的0點到10點每2小時執行一次指令碼

如果要精確到秒級執行,可以這樣寫:

* * * * * sleep 10; /user/bin/start 每10秒執行一次指令碼