溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何實(shí)現(xiàn)crontab的解析

發(fā)布時(shí)間:2021-12-30 12:02:47 來源:億速云 閱讀:188 作者:柒染 欄目:云計(jì)算

如何實(shí)現(xiàn)crontab的解析,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

Crontab是一個(gè)很方便的在unix/linux系統(tǒng)上定時(shí)(循環(huán))執(zhí)行某個(gè)任務(wù)的程序

  使用cron服務(wù),用 service crond status 查看 cron服務(wù)狀態(tài),如果沒有啟動(dòng)則 service crond start啟動(dòng)它,

  cron服務(wù)是一個(gè)定時(shí)執(zhí)行的服務(wù),可以通過crontab 命令添加或者編輯需要定時(shí)執(zhí)行的任務(wù):

  crontab -u //設(shè)定某個(gè)用戶的cron服務(wù),一般root用戶在執(zhí)行這個(gè)命令的時(shí)候需要此參數(shù)

  crontab -l //列出某個(gè)用戶cron服務(wù)的詳細(xì)內(nèi)容

  crontab -r //刪除沒個(gè)用戶的cron服務(wù)

  crontab -e //編輯某個(gè)用戶的cron服務(wù)

  比如說root查看自己的cron設(shè)置:crontab -u root -l

  再例如,root想刪除fred的cron設(shè)置:crontab -u fred -r

  在編輯cron服務(wù)時(shí),編輯的內(nèi)容有一些格式和約定,輸入:crontab -u root -e

  進(jìn)入vi編輯模式,編輯的內(nèi)容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

  編輯/etc/crontab文件,在末尾加上一行: 30 5 * * * root init 6 這樣就將系統(tǒng)配置為了每天早上5點(diǎn)30自動(dòng)重新啟動(dòng)。

  需要將crond設(shè)置為系統(tǒng)啟動(dòng)后自動(dòng)啟動(dòng)的服務(wù),可以在/etc/rc.d/rc.local 中,在末尾加上

  service crond start

  如果還需要在系統(tǒng)啟動(dòng)十加載其他服務(wù),可以繼續(xù)加上其他服務(wù)的啟動(dòng)命令。

  比如: service mysqld start

  基本用法:

  1. crontab -l

  列出當(dāng)前的crontab任務(wù)

  2. crontab -d

  刪除當(dāng)前的crontab任務(wù)

  3. crontab -e (solaris5.8上面是 crontab -r)

  編輯一個(gè)crontab任務(wù),ctrl_D結(jié)束

  4. crontab filename

  以filename做為crontab的任務(wù)列表文件并載入

  crontab file的格式:

  crontab 文件中的行由 6 個(gè)字段組成,不同字段間用空格或 tab 鍵分隔。前 5 個(gè)字段指定命令要運(yùn)行的時(shí)間

  分鐘 (0-59)

  小時(shí) (0-23)

  日期 (1-31)

  月份 (1-12)

  星期幾(0-6,其中 0 代表星期日)

  第 6 個(gè)字段是一個(gè)要在適當(dāng)時(shí)間執(zhí)行的字符串

  例子:

  #MIN HOUR DAY MONTH DAYOFWEEK COMMAND

  #每天早上6點(diǎn)10分

  10 6 * * * date

  #每?jī)蓚€(gè)小時(shí)

  0 */2 * * * date (solaris 5.8似乎不支持此種寫法)

  #晚上11點(diǎn)到早上8點(diǎn)之間每?jī)蓚€(gè)小時(shí),早上8點(diǎn)

  0 23-7/2,8 * * * date

  #每個(gè)月的4號(hào)和每個(gè)禮拜的禮拜一到禮拜三的早上11點(diǎn)

  0 11 4 * mon-wed date

  #1月份日早上4點(diǎn)

  0 4 1 jan * date

  補(bǔ)充:在使用crontab的時(shí)候,要特別注意的是運(yùn)行腳本中能夠訪問到的環(huán)境變量和當(dāng)前測(cè)試環(huán)境中的環(huán)境變量未必一致,一個(gè)比較保險(xiǎn)的做法是在運(yùn)行的腳本程序中自行設(shè)置環(huán)境變量(export)

  (1)先建一個(gè)文件crond.txt如下, 每天早上5點(diǎn)36分重新啟動(dòng)

  36 5 * * * reboot

  (2)上傳到/opt目錄

  (3)運(yùn)行命令

  crontab /opt/crond.txt

  crontab -l

  讓配置文件生效:如果讓配置文件生效,還得重新啟動(dòng)cron,切記,既然每個(gè)用戶下的cron配置文件修改后。也要重新啟動(dòng)cron服務(wù)器。

  在Fedora 和Redhat中,我們應(yīng)該用;

  [root@localhost ~]# /etc/init.d/crond restart

  如果讓crond 在開機(jī)時(shí)運(yùn)行,應(yīng)該改變其運(yùn)行級(jí)別;

  [root@localhost ~]# chkconfig --levels 35 crond on

  service crond status 查看 cron服務(wù)狀態(tài),如果沒有啟動(dòng)則 service crond start啟動(dòng)它, cron服務(wù)是一個(gè)定時(shí)執(zhí)行的服務(wù),可以通過crontab 命令添加或者編輯需要定時(shí)執(zhí)行的任務(wù)。 

Crontab文件的每一行由六個(gè)域(minutes、hours、day of month、month、day of week、 command)組 成,域之間用空格或Tab分開,其中:

minutes: 分鐘域,值的范圍是0到59

hours: 小時(shí)域,值的范圍是0到23

day of month: 日期,值的范圍是1到31

month: 月份,值的范圍是1到12

day of week: 星期,值的范圍是0到6,星期日值為0

command: 所要運(yùn)行的命令

如果一個(gè)域是*,表明命令可以在該域所有可能的取值范圍內(nèi)執(zhí)行。

如果一個(gè)域是由連字符隔開的兩個(gè)數(shù)字,表明命令可以在兩個(gè)數(shù)字之間的范圍內(nèi)執(zhí)行(包括兩個(gè)數(shù)字 本身)。

如果一個(gè)域是由逗號(hào)隔開的一系列值組成的,表明命令可以在這些值組成的范圍內(nèi)執(zhí)行。

如果日期域和星期域都有值,則這兩個(gè)域都有效。

編寫一個(gè)文件,用以啟動(dòng)自動(dòng)備份進(jìn)程。

cd /opt

touch reboot.txt

在reboot.txt中添加一下內(nèi)容:

0 4 * * * reboot

crontab /opt/reboot.txt

用crontab -e編輯定時(shí)操作,例如加入下行命令:

用crontab -l命令來查看

注意:需要啟動(dòng)服務(wù)(添加在rc.local中)

重啟crond任務(wù)

/etc/init.d/cron restart (ubuntu下)

第一種 在Fedora或Redhat 等以RPM包管理的系統(tǒng)中;

[root@localhost ~]# /etc/init.d/crond start

[root@localhost ~]# /etc/init.d/crond stop

[root@localhost ~]# /etc/init.d/crond restart

/etc/rc.d/init.d/crond restart

命令簡(jiǎn)介

crontab-操作每個(gè)用戶的守護(hù)程序和該執(zhí)行的時(shí)間表。

部分參數(shù)說明

crontab file [-u user]-用指定的文件替代目前的crontab。

crontab-[-u user]-用標(biāo)準(zhǔn)輸入替代目前的crontab.

crontab-1[user]-列出用戶目前的crontab.

crontab-e[user]-編輯用戶目前的crontab.

crontab-d[user]-刪除用戶目前的crontab.

crontab-c dir- 指定crontab的目錄。

crontab文件的格式:M H D m d cmd.

M: 分鐘(0-59)。

H:小時(shí)(0-23)。

D:天(1-31)。

m: 月(1-12)。

d: 一星期內(nèi)的天(0~6,0為星期天)。

cmd要運(yùn)行的程序,程序被送入sh執(zhí)行,這個(gè)shell只有USER,HOME,SHELL這三個(gè)環(huán)境變量。

關(guān)于如何實(shí)現(xiàn)crontab的解析問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI