您好(hǎo),歡迎來(lái)到(dào)盤龍區< 華銘誠泰網絡工作室官方網站(zhàn)!ZJJCL.CN
新聞動态
您現(xiàn)在的(de)位置:首頁 > 技(jì)術(shù)文(wén)摘
Linux 定時(shí)任務crontab
來(lái)源:創立工(gōng)作(zuò)室 作(zuò)者:馮軍 發$✘布時(shí)間(jiān):2020-08-06 14:05:40 閱讀(∑±dú) 1367 次

1、crontab命令概念

crontab命令用(yòng)于設置周期性被執行≠€π₹(xíng)的(de)指令。該命令從(cóng)标準輸入設備讀(dú)取指令,并将其←•存放(fàng)于“crontab”文(wén)件'↑∑↕(jiàn)中,以供之後讀(dú)取和(hé)執行(xíng)。

cron 系統調度進程。 可(kě)以使用(yòng)它在每天的(de)非高(gāo)峰α÷負荷時(shí)間(jiān)段運行(xíng)作(zπ§uò)業(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ōng)過/∏π↓↓etc/cron.deny 和(hé) /etc/cron♦✔.allow 這(zhè)兩個(gè)文(wén)件(" ♠jiàn)來(lái)禁止或允許

用(yòng)戶擁有(yǒu)自(zì)己的( ★λΩde)crontab文(wén)件(jiàn)。₩α

2檢查是(shì)否安裝了(le)crontab,如(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,cron.weekγ₩₽ly,cron.monthly,cron.d五個(gè)目錄和(hé)cronσ→λtab,cron.deny二個(gè)文(wén)件(jiàn)。

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

cron.weekly是(shì)每個(gè)星期執行(xíng)一₽↑±(yī)次的(de)job

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)做(zσ'™uò)的(de)任務

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

cron.deny文(wén)件(jiàn)就(jiù)是(shì)用(yòng)于控制(✔♥zhì)不(bù)讓哪些(xiē)用(yòn•‌  g)戶使用(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)過crontab★∏↕ -e 就(jiù)可(kě)以編輯,一(yī)般情況下(xiδλεà)我們編輯好(hǎo)用(yòng)戶的(de)cron配置文ββ'§(wén)件(jiàn)保存退出後,系統會(huì)自(zì★∏♣)動就(jiù)存放(fàng)于/var/spool/cron/目錄中,$‌ε文(wén)件(jiàn)以用(yòng)戶名命名.linux的(λ<£de)cron服務是(shì)每隔一(yī)分(fēn) ÷γ鐘(zhōng)去(qù)讀(dú)取一(yī)次/π↓↓☆var/spool/cron,/etc/crontab,/etc/cron.∏π ★d下(xià)面所有(yǒu)的(de)內(nèi)容$&π.

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

 *         *       * ‍★✘        *         *  ε₩ ₽     command

minute       ¥φhour       day       month       we ☆<☆ek       command

分(fēn)     ≈∑ε♦  時(shí)       天       月(yuè£←←‍)       星期       命令

minute: 表示分(fēn)鐘(zhōng),可(kě)以是(shì)從(cón✘ε∑g)0到(dào)59之間(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)任何整數(shù),這(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ú)“2-6”表示σ♠“2,3,4,5,6&rdq ♣¥uo;。

正斜線(/):可(kě)以用(yòng)$↔​∞正斜線指定時(shí)間(jiān)的(de)α↕©間(jiān)隔頻(pín)率,例如(rú)&♥‍βldquo;0-23/2”表示每↔✔©兩小(xiǎo)時(shí)執行(xíng)一(←‍φ'yī)次。同時(shí)正斜線可(kě)以和(hé)星号一(yī)¥&起使用(yòng),例如(rú)*/10,如(rú)果↓$§∏用(yòng)在minute字段,表示每®÷¶十分(fēn)鐘(zhōng)執行(xíng)一(yī)次。

8、在home目錄下(xià)編寫一(yī)個(gè)test∞Ω.sh腳本,腳本功能(néng)是(shì)把/home下(xià¥→)ifcfg-eth0這(zhè)個(gè)文(w☆σ✔én)本複制(zhì)到(dào)/mnt目錄下(xià)。

9、運行(xíng)crontab –e 編寫一≈ £(yī)條定時(shí)任務 */5 * * * * /home/ φ↔§test.sh 在每5分(fēn)鐘(zhō ∞ng)執行(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/tesγ&α•t.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 restart

每月(yuè)每天晚上(shàng)21點30分(fēn)ε♥€£執行(xíng)test.sh腳本

30 21 * * *  /etc/init.d/n‌‍φ₹etwork restart

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

45 4 1,10,22 * * /etc/init.d/netλ¶σ↑work restart

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í)任務命令或腳本結尾加 &>/dev/nullπ≈ββ 或 >/dev/null 2>&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ě)σβ↔

    Ω ™     注≠€σ意操作(zuò)步驟:

  (1)、命令行(xíng)執行(xín✘÷♠¥g)

  (2)、編寫腳本

  (3)、測試腳本

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

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

要(yào)領6:定時(shí)任務執行(xíng)的(de)↑★<腳本要(yào)規範路(lù)徑 (例如(rú) /servλ>₹↑er/script)

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

要(yào)領8:定時(shí)任務執行(xíng)特殊的(de)字符需要(yào)進行(x÷→íng)轉義,否則會(huì)報(bào)錯(cuò),例如(rúβ¶∞) 百分(fēn)号% 轉義 \%

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