Linux定時任務Crontab

crontab文件包含送交cron守護進程的一系列做業和指令。每一個用戶能夠擁有本身的crontab文件;同時,操做系統保存一個針對整個系統的crontab文件,該文件一般是/etc/crontab,而這個文件只能由系統管理員修改。
/etc/crontab文件中前三行:shell

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

第一行SHELL變量指定了系統要使用哪一個shell,這裏是bash。
第二行PATH變量制定了系統執行命令的路徑。
第三行MAILTO變量制定了crond的任務執行信息將經過郵件發送給root用戶, 若是該變量爲空,則表示不發送任務執行信息給用戶。bash

crontab命令

crontab [-u user] [-l| -r| -e] [-i]
-l: 列出當前用戶的計劃任務
-e: 編輯當前用戶的計劃任務
-r: 刪除當前用戶的全部計劃任務。即刪除/var/spool/cron/USERNAME文件
-u: 管理制定用戶的計劃文件,僅root有權限
-i: 在使用-r選項刪除全部任務時提示用戶確認。

crontab -e建立的計劃任務會默認放在/var/spool/cron/目錄下以用戶名命名的文件中。操作系統

crontab語法

.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |
*  *  *  *  * user-name  command to be executed

在以上各個字段中,還可使用如下特殊字符:
星號(*):表明全部可能的值,例如month字段若是是星號,則表示在知足其它字段的制約條件後每個月都執行該命令操做。
逗號(,):能夠用逗號隔開的值指定一個列表範圍,例如,「1,2,5,7,8,9」
中槓(-):能夠用整數之間的中槓表示一個整數範圍,例如「2-6」表示「2,3,4,5,6」
正斜線(/):能夠用正斜線指定時間的間隔頻率,例如「0-23/2」表示每兩小時執行一次。同時正斜線能夠和星號一塊兒使用,例如*/10,若是用在minute字段,表示每十分鐘執行一次。指定的時間點不能被步長整除時,其意義將不存在。例如 */7 * * * *

注意:
a.每行定義一個週期性任務,共7個字段。user-name默認當前用戶
b.執行計劃任務的環境變量不一樣於用戶登陸後得到的環境,所以建議命令使用絕對路徑
c.執行結果會發送郵件給mailto指定的當前用戶

示例:code

*/5 * * * *         每5分鐘執行一次
3 * * * *           每小時的第3分鐘執行一次
3 4 * * 5           每週5的4點3分執行一次
5 6 7 * *           每個月的7號的6點5分執行一次
7 8 9 10 *          每一年的10月9號8點7分執行一次
9 8 * * 3,7         每週3和週日的8點9分
0 8,20 * * 3,7      每週3和週日的8點和20點執行一次
0 9-18 * * 1-5      週一到週五的9-18點,即工做時間內的每小時
0 7 25 12 *         每一年的12月25號7點執行一次
相關文章
相關標籤/搜索