系统的crontab设定:/etc/crontab
crontab?? -e?? 是針對(duì)用戶的cron來(lái)設(shè)計(jì)的,如果是系統(tǒng)的例行性任務(wù),該怎么辦?是否還是需要以crontab -e來(lái)管理例行性命令?當(dāng)然不需要,您只需要編輯/etc/crontab文件就可以了。需要注意的是:crontab -e的作用其實(shí)是/usr/bin/crontab這個(gè)執(zhí)行文件,但是/etc/crontab是個(gè)純文本文件,可以root的身份編輯這個(gè)文件。
???????
????????? 基本上,cron服務(wù)的最低檢測(cè)時(shí)間單位是分鐘,所以cron會(huì)每分鐘讀取一次/etc/crontab與/var/spool/cron中的數(shù)據(jù)內(nèi)容,因此,只要您編輯完/etc/crontab文件并且保存之后,crontab時(shí)設(shè)定就會(huì)自動(dòng)執(zhí)行。
?????? 注意:在linux下的crontab會(huì)自動(dòng)幫我們每分鐘重新讀取一次/etc/crontab的例行工作事項(xiàng),但是某些原因或在其他的unix系統(tǒng)中,由于crontab是讀到內(nèi)存中,所以在您修改完/etc/crontab之后可能并不會(huì)馬上執(zhí)行,這時(shí)請(qǐng)重新啟動(dòng)crond服務(wù)。
/etc/rc.d/init.d/crond?? restart
好了,下面看看/etc/crontab文件的內(nèi)容:
vi?? /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
#?? run-parts
01 * * * * root?? nice?? -n?? 19???? run-parts?? /etc/cron.hourly
02 4 * * * root?? nice?? -n?? 19??? run-parts?? /etc/cron.daily
22 4 * * * root??? nice?? -n?? 19?? run-parts?? /etc/cron.weekly
42 4 1 * * root?? nice?? -n??? 19? run-parts?? /etc/cron.monthly
分時(shí)日月周?? 用戶?? 參數(shù)設(shè)定值?? 參數(shù)設(shè)定值?? 指令段
?????? 從這個(gè)文件的內(nèi)容可以看出,這個(gè)文件與輸入crontab -e后的內(nèi)容幾乎完全相同,只是下面幾個(gè)地方有所區(qū)別:
MAILTO=root:這個(gè)字段說(shuō)明了當(dāng)/etc/crontab文件中的例行性命令發(fā)生錯(cuò)誤時(shí),會(huì)將錯(cuò)誤信息或屏幕顯示的信息傳遞給誰(shuí)?由于root無(wú)法在客戶端收信,因此,可以將這個(gè)email改成自己普通用戶帳號(hào)。?
?01 * * * * root?? nice?? -n?? 19???? run-parts?? /etc/cron.hourly:在#run-parts這一行以后的命令,我們可以發(fā)現(xiàn),5個(gè)數(shù)字后面接的是root,這代表執(zhí)行的層級(jí)為root身份。當(dāng)然,您也可以root改成其他身份,而run-parts表示后面接的是/etc/cron.hourly是一個(gè)目錄內(nèi)(/etc/cron.hourly)的所有可執(zhí)行文件,也就是說(shuō)每個(gè)小時(shí)的01分,系統(tǒng)會(huì)以root的身份到/etc/cron.hourly目錄下執(zhí)行所有可以執(zhí)行的文件。系統(tǒng)本來(lái)就默認(rèn)了這4個(gè)目錄,您可以將每天需要執(zhí)行的命令直接寫到/etc/cron.daily中,還不需要用到crontab -e程序,很方便。
???????? 注意:基本上,/etc/crontab支持兩種輸入指令的方式,一種是直接以指令形式輸入,一種則是以目錄形式輸入。
指令形式
01?? * * * * test?? mail?? -s?? test?? test?? <?? /home/test/test/test.txt
用戶是test,且每小時(shí)執(zhí)行一次指令mail……
目錄形式
*/5?? *? *? *? * root run-parts?? /root/runcron
建立一個(gè)/root/runcron目錄,將每隔5分鐘執(zhí)行一次的可執(zhí)行文件都寫到該目錄下,就可以讓系統(tǒng)每5分鐘執(zhí)行一次該目錄下的所有可執(zhí)行文件。
???????????
????????? 這樣就知道run-parts的作用了吧!此外,與crontab -e規(guī)劃中不同的是,多了一個(gè)用戶層級(jí)的概念。通常,我們都是以root的角度來(lái)規(guī)劃例行命令的,但是總有不需要root的場(chǎng)合,因此可以使用這個(gè)層級(jí)來(lái)規(guī)范該程序的用戶所屬。
??????? 如果每個(gè)流程都在同一時(shí)間啟動(dòng),那么在某個(gè)時(shí)段,系統(tǒng)會(huì)非常的繁忙,所以這時(shí)必須分別設(shè)定。可以這樣做:
1,6,11,16,21,26,31,36,41,46,51,56 * * * * root …………?? // 省略號(hào)代表命令
2,7,12,17,22,27,32,37,42,47,52,57 * * * * root …………?
3,8,13,18,23,28,33,38,43,48,53,58 * * * * root …………?
4,9,14,19,24,29,34,39,44,49,54,59 * * * * root …………?
?注意,要用","分隔時(shí),不要帶有空格。如此一來(lái),則可以將每5分鐘工作的流程分別安排在不同的時(shí)刻進(jìn)行。
文章出處:http://www.diybl.com/course/6_system/linux/Linuxjs/2008626/128554.html
轉(zhuǎn)載于:https://blog.51cto.com/fangwei009/1633032
總結(jié)
以上是生活随笔為你收集整理的系统的crontab设定:/etc/crontab的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: win10 访问共享缺少 SMB1协议
- 下一篇: windows API 开发飞机订票系统