本文轉(zhuǎn)載自:Meditator_6344的簡(jiǎn)書 Linux定時(shí)任務(wù)crontab
crontab簡(jiǎn)介與基本格式
1.1 簡(jiǎn)介
crontab 命令常見于 Unix 和類 Unix 的操作系統(tǒng)之中(Linux 就屬于類 Unix 操作系統(tǒng)),用于設(shè)置周期性被執(zhí)行的指令需纳。crontab 命令從輸入設(shè)備讀取指令埠居,并將其存放于 crontab 文件中揍瑟,以供之后讀取和執(zhí)行稠通。通常肌括,crontab 儲(chǔ)存的指令被守護(hù)進(jìn)程激活枫浙,crond 為其守護(hù)進(jìn)程朦拖,crond 常常在后臺(tái)運(yùn)行,每一分鐘會(huì)檢查一次是否有預(yù)定的作業(yè)需要執(zhí)行孽文。
通過(guò) crontab 命令驻襟,我們可以在固定的間隔時(shí)間執(zhí)行指定的系統(tǒng)指令或 shell script 腳本。時(shí)間間隔的單位可以是分鐘芋哭、小時(shí)沉衣、日、月减牺、周的任意組合豌习。
1.2 cron的工作原理
當(dāng)用戶使用crontab命令新建任務(wù)計(jì)劃之后,該項(xiàng) jobs 就會(huì)被 /var/spool/cron/ 目錄下烹植,而且以用戶賬號(hào)來(lái)創(chuàng)建一個(gè)文件,每一項(xiàng)任務(wù)計(jì)劃為一行愕贡。
crond 檢測(cè)的時(shí)間周期是 “分鐘”草雕, 每分鐘會(huì)讀取一次 /etc/crontab, 以及 /var/spool/cron 里面的記錄并執(zhí)行固以。
crond 執(zhí)行的每一項(xiàng)任務(wù)計(jì)劃墩虹,都會(huì)被記錄到 /var/log/cron 這個(gè)日志文件。
1.3 crontab的命令格式
crontab [-u user] file crontab [-u user] [ -e | -l | -r ]
-u user:用來(lái)設(shè)定某個(gè)用戶的crontab服務(wù)憨琳;
-file:file是命令文件的名字,表示將file做為crontab的任務(wù)列表文件并載入crontab诫钓。如果在命令行中沒(méi)有指定這個(gè)文件,crontab命令將接受標(biāo)準(zhǔn) 輸入(鍵盤)上鍵入的命令篙螟,并將它們載入crontab菌湃。
-e:編輯某個(gè)用戶的crontab文件內(nèi)容。如果不指定用戶遍略,則表示編輯當(dāng)前用戶的crontab文件惧所。
-l:顯示某個(gè)用戶的crontab文件內(nèi)容骤坐,如果不指定用戶,則表示顯示當(dāng)前用戶的crontab文件內(nèi)容下愈。
-r:從/var/spool/cron目錄中刪除某個(gè)用戶的crontab文件纽绍,如果不指定用戶,則默認(rèn)刪除當(dāng)前用戶的crontab文件势似。
-i:在刪除用戶的crontab文件時(shí)給確認(rèn)提示拌夏。
以下是可以用于指定時(shí)間的特殊符號(hào):
"*" 代表所有的取值范圍內(nèi)的數(shù)字,任何時(shí)刻都接受履因。特別要注意哦障簿!
"*/n" 表示每n個(gè)單位間隔
"-" 時(shí)間范圍
"," 分隔的時(shí)段
1.4 crontab的文件格式
分 時(shí) 日 月 星期 要運(yùn)行的命令
第1列分鐘0~59
第2列小時(shí)0~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~7(0和7表示星期天)
第6列要運(yùn)行的命令
crontab使用
常用命令
$crontab -e 編輯crontab文件
$crontab -l 使用-l參數(shù)列出crontab文件
$crontab -r 刪除crontab 文件
1.1 crontab -e
需要注意的是寸爆,有時(shí)候可能crontab定時(shí)任務(wù)會(huì)出現(xiàn)無(wú)法執(zhí)行的問(wèn)題⊙纹郏可以從以下幾個(gè)方面查找問(wèn)題原因:
a.查看當(dāng)前cron服務(wù)是否啟動(dòng)赁豆。
可以通過(guò)執(zhí)行service crond status
b.可能是命令寫的不正確魔种。
可以將crontab的命令拿出來(lái)單獨(dú)執(zhí)行,看是否報(bào)錯(cuò)粉洼。嗯节预,我遇到的就是這種情況。
crontab -e 與 /etc/crontab
- crontab -e 是針對(duì)使用者即某個(gè)用戶來(lái)設(shè)計(jì)的属韧,etc/crontab則是針對(duì)系統(tǒng)的例行性任務(wù)安拟。
2.crontab -l
可以通過(guò)以下命令對(duì)cron文件進(jìn)行備份
$ crontab -l > HOME/fanco/mycopycron
3.crontab -r
刪除定時(shí)任務(wù)文件,將目前所有創(chuàng)建的crontab定時(shí)任務(wù)刪除宵喂。(慎用)糠赦,建議通過(guò)前面crontab-l進(jìn)行文件備份。
crontab文件編寫實(shí)例:
# 每一分鐘執(zhí)行一次command命令
* * * * * command
# 每小時(shí)的第3 和 第15分鐘執(zhí)行command命令
3,15 * * * * command
參考鏈接:
鳥哥的Linux私房菜
實(shí)驗(yàn)樓