您好,登錄后才能下訂單哦!
如何實(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í)。
免責(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)容。