您好(hǎo),歡迎來(lái)到(dào)溫江區帝啓網絡工作室官方網站(zhàn)!ZJαΩJCL.CN
新聞動态
您現(xiàn)在的(de)位置:首頁 > 技(jì)術(shù)文(wén)摘
Linux 定時(shí)任務crontab
來(lái)源:創立工(gōng)作(z™ uò)室 作(zuò)者:馮軍 發布時(shí)間(jiān):20≤←20-08-06 14:05:40 閱讀(dú) 1↕σ↓346 次

1、crontab命令概念

crontab命令用(yòng)于設置周期性被執行(xíng)的(de)指←££<令。該命令從(cóng)标準輸入設備讀(dúπ®β₩)取指令,并将其存放(fàng)于“crontab&r¥∏dquo;文(wén)件(jiàn)中,以供之後讀↕™≠₹(dú)取和(hé)執行(xíng)。

cron 系統調度進程。 可(kě)以使用(yòng)它在每天的(de)非高(gāo)峰負荷時(shí)間(j↑✔iān)段運行(xíng)作(zuò)業(yè),或在一(yī)周或σγ♣×一(yī)月(yuè)中的(de)不(bù)同時(shí)段運行(xíng)。cron是♠ (shì)系統主要(yào)的(de)調度進程,可(kě)以在無需人(rén)工(gōng)幹預的'¥↔(de)情況下(xià)運行(xíng)作 姀(zuò)業(yè)。

crontab命令允許用(yòng)戶提交、編輯或删除相(xiàng☆→)應的(de)作(zuò)業(yè)。每一(βΩyī)個(gè)用(yòng)戶都(dōu)可(kě)以有(yǒu)一(• ₹♦yī)個(gè)crontab文(wén)件(jiàn)±&±‍來(lái)保存調度信息。系統管理(lǐ)員(yuán)可(kě)以通(tōnα$>§g)過/etc/cron.deny 和(hé) /etc/cron.allow 這β→×≈(zhè)兩個(gè)文(wén)件(jiàn)來(lái)禁止或允許

用(yòng)戶擁有(yǒu)自(zì)己的(de)cπσ¥rontab文(wén)件(jiàn)。

2檢查是(shì)否安裝了(le)cronta¶•✔b,如(rú)果提示未安裝請(qǐng)自(zì)行(xíng)安裝,crontab安裝包在系統光εσεδ(guāng)盤裡(lǐ)面的(de)pacekage文(wén)件(jiàn)夾∏≤crontabs安裝包。

 

3、  crontab服務啓動與關閉。

4、  全局配置文(wén)件(jiàn):

crontab在/etc目錄下(xià)面存在cron.hourly,cron.daily,cr↕↓®on.weekly,cron.monthly,cron.d五個(gè)目錄和(¶'↓hé)crontab,cron.deny二個(gè)文(wén)件(jiàn)。

cron.daily是(shì)每天執行(xíng)一(yī)次的(de)job

cron.weekly是(shì)每個(gè)星期執行(xíng)一(yī)次的(de)jo¶•b

cron.monthly是(shì)每月(yuè)執行(xíng)一(yī)次的(de)job

cron.hourly是(shì)每個(gè)小(xiǎo)時(shí)執行(xíng)一(yī)次的≠↔σ≠(de)job

cron.d是(shì)系統自(zì)動定期需要(yào)做(zuò)的(×♣γπde)任務

crontab是(shì)設定定時(shí)任務執行(xíng)文(wén)件(jiàn)

cron.deny文(wén)件(jiàn)就(jiù)是(shì)用(y↕©λòng)于控制(zhì)不(bù)讓哪些(xi λē)用(yòng)戶使用(yòng)Crontab的(de)功能(λ∞Ωnéng)

5、  用(yòng)戶配置文(wén)件(jiàn):

每個(gè)用(yòng)戶都(dōu)有(yǒu)自(zì)己的(de)cron配置文(wé×σn)件(jiàn),通(tōng)過cr‌​&≠ontab -e 就(jiù)可(kě)以編輯,一(yī)般情況下(xiàβ↔♠)我們編輯好(hǎo)用(yòng)戶的(de)cron配ε §←置文(wén)件(jiàn)保存退出後,↑←α系統會(huì)自(zì)動就(jiù)存放(fàng)于/var/spool/cro→£←n/目錄中,文(wén)件(jiàn)以用(yòng)戶名命名.linux的(de§∏")cron服務是(shì)每隔一(yī)分(fēn)鐘(zhōn​αg)去(qù)讀(dú)取一(yī)次/var/spool/cε→±↓ron,/etc/crontab,/etc×÷∞'/cron.d下(xià)面所有(yǒu)的(de)內(nèi)容.

6、  crontab文(wén)件(jiàn)格λπ ‌式:

 *         *       *         *         *       c↑✘✔ommand

minute       hour       day       mont'✘★h       week       command

分(fēn)       ∞δλ時(shí)       天       月(yuè ♠↓♦)       星期       命令

minute: 表示分(fēn)鐘(zhōng),可(kě)以是(shì)從(cóng)0到(dào)5γ↕'9之間(jiān)的(de)任何整數(shù)。

hour:表示小(xiǎo)時(shí),可(kě)以是(shì)從(cóng)0到♣≥÷•(dào)23之間(jiān)的(de)任何整數∞β÷α(shù)。

day:表示日(rì)期,可(kě)以是(shì)從(cóng)1到(dào)31之間(jiā± ‍n)的(de)任何整數(shù)。

month:表示月(yuè)份,可(kě)以是(shì)從(cóng)1到(dào)12↓•之間(jiān)的(de)任何整數(shσ£™ù)。

week:表示星期幾,可(kě)以是(shì)從(cóng)0到(dào)$λ∞7之間(jiān)的(de)任何整數(s←'hù),這(zhè)裡(lǐ)的(de)0 •‍或7代表星期日(rì)。

command:要(yào)執行(xíng)的(de)命$≠π♦令,可(kě)以是(shì)系統命令,也(yě)可(kα$¥÷ě)以是(shì)自(zì)己編寫的(de)腳本文(wén)件(jiàn)。

7、 特殊字符:

星号(*):代表每的(de)意思,例如(rú)month字段如(♣‌♣rú)果是(shì)星号,則表示每月(yuè)都(d<₩★↕ōu)執行(xíng)該命令操作(zuò)。

逗号(,):表示分(fēn)隔時(shí)段的(de)意思,例如(rú),“1,3,5"≠★↓,7,9”。

中杠(-):表示一(yī)個(gè)時(shí)間(jiān)範圍,例如(rú)&ldσεαquo;2-6”表示“2,3,4,5,6€' ”。

正斜線(/):可(kě)以用(yòng)正斜線指定時(shí)間(jiān)的(de)間δ↔ δ(jiān)隔頻(pín)率,例如(rú)&ldqu₹₹"♠o;0-23/2”表示每兩小(xiǎo)時(shí)執行(xíng)一(yī)次。™₩‍同時(shí)正斜線可(kě)以和(héφ×σ)星号一(yī)起使用(yòng),例如(rú)*/10,如(rú)果用(yòng)在m♠→αinute字段,表示每十分(fēn)鐘(zhōng)執→★★ε行(xíng)一(yī)次。

8、在home目錄下(xià)編寫一(yī)個(gè)test.sh腳本,腳本功能(nén$δ$​g)是(shì)把/home下(xià)ifcfg-eth0這(zhè)個(gè)文(wén)≈β本複制(zhì)到(dào)/mnt目錄下(xià)。

9、運行(xíng)crontab –e 編&'‌寫一(yī)條定時(shí)任務 */5 * * * * /hom &"e/test.sh 在每5分(fēn)鐘(zhōn←"♣©g)執行(xíng)一(yī)次test.sh腳本。

10、查詢當前用(yòng)戶定時(shí)任務或删•≠除當前用(yòng)戶定時(shí)任務。

11、設置crond開(kāi)機(jī)自(zì)動啓動。

12、實例:

每月(yuè)每天淩晨3點30分(fēn)和(hé)中午12點20分(fē∞€φn)執行(xíng)test.sh腳本

30 3,12 * * *  /home/test.sh

每月(yuè)每天每隔6小(xiǎo)時(shí)的(de)每30分✘∞←≠(fēn)鐘(zhōng)執行(xíng)test.sh腳本

30 */6 * * *  /home/test.sh

每月(yuè)每天早上(shàng)8點到(↓∏§​dào)下(xià)午18點每隔2小(xiǎo)時(shí≠&∑$)的(de)每30分(fēn)鐘(zhōng)執行(xíng)test.sh腳本

30 8-18/2 * * * /etc/init.d/network resta×®rt

每月(yuè)每天晚上(shàng)21點30α×γ¥分(fēn)執行(xíng)test.sh腳本

30 21 * * *  /etc/init.d/network restart

每月(yuè)1号、10号、22号淩晨4點45分(fēn)執行(xíng  )test.sh腳本

45 4 1,10,22 * * /etc/init.d/network re↕₩→★start

8月(yuè)份周一(yī)、周日(rì)淩晨​α1點10分(fēn)執行(xíng)test​¶.sh腳本

10 1 * 8 6,0 /etc/init.d/network restart

每月(yuè)每天每小(xiǎo)時(shí)整點執行(xíng)×∑£test.sh腳本

00 */1 * * *  /etc/init.d/network restart

******定時(shí)任務書(shū)寫要(yào)領******

要(yào)領1:定時(shí)任務要(yào)加注釋

要(yào)領2:定時(shí)任務命令或腳本結尾加 &am​™★p;>/dev/null 或 >/dev/null 2&g€→t;&1 或 1>/dev/null 2>/dev/★"∑♦null

要(yào)領3:定時(shí)任務執行(xíng)shell✘λ腳本前加/bin/sh,定時(shí)任務執行(xíng)shell腳本不(bù)必添加λ$‌​執行(xíng)權限

要(yào)領4:定時(shí)任務命令或程序盡量寫到(dào)腳本裡(lǐ),定時(shí)>✔¥任務隻要(yào)執行(xíng)腳本即可(kě)

   &nbs £↑♣p;     注意操作(z★β↔$uò)步驟:

  (1)、命令行(xíng)執行(xíng)

  (2)、編寫腳本

  (3)、測試腳本

  (4)、設置定時(shí)任務

要(yào)領5:生(shēng)産任務程序不(bù)要(yào)随意打印輸出 ✔≠π信息

要(yào)領6:定時(shí)任務執行(xíng)的(de)腳本&♠↕要(yào)規範路(lù)徑 (例如(r£☆∏ ú) /server/script)

要(yào)領7:配置定時(shí)任務要(yào)規範操作(zuò)過程

要(yào)領8:定時(shí)任務執行(xíng)特殊的(de)字符需要(yào)進行(xíng)轉義,否則會(h"↓♦$uì)報(bào)錯(cuò),例如(rú)<₩σ 百分(fēn)号% 轉義 \%

要(yào)領9:定時(shí)任務腳本中如(rú)果涉及使用(yòng)到(dào)環境變量,必須在腳本中重新定義$₩,不(bù)然,定時(shí)任務識别不(bù)了(le)