Linux中crontab-定時(shí)任務(wù)命令
有些東西很久不用就會(huì)忘記,所以為了不至于總是找資料,干脆就做一次深刻的筆記,這樣既能加深記憶,又能深入理解。
linux服務(wù)器很久沒接觸了,出了一些新的版本,Ubuntu已經(jīng)出了11.10了,之前對(duì)于Ubuntu的了解只是出于對(duì)桌面版的好奇,可以跟win7一樣炫,現(xiàn)在的Ubuntu已正式進(jìn)入了Liunx愛好者的視線,應(yīng)用用于后臺(tái)大型服務(wù)器,選擇它的主要原因還是出于對(duì)穩(wěn)定性的考慮。用習(xí)慣了Centos,突然轉(zhuǎn)移到Ubuntu上還是有些不習(xí)慣,畢竟Centos與傳統(tǒng)的Redhat沒什么區(qū)別。不過(guò),總歸命令還是一樣的,多用用就熟悉了。
關(guān)于任務(wù)定時(shí)的命令crontab,在Linux中應(yīng)用還算常見,這次為了配合開發(fā)完成一些輔助功能,以及一些備份更新等腳本,就需要crontab來(lái)完成,在windows下也就是一個(gè)批處理,linux只是多了一些命令而已。先來(lái)看看crontab的介紹:
crontab命令常見于Unix和類Unix的操作系統(tǒng)之中,用于設(shè)置周期性被執(zhí)行的指令。該命令從標(biāo)準(zhǔn)輸入設(shè)備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執(zhí)行。通常,crontab儲(chǔ)存的指令被守護(hù)進(jìn)程激活, crond常常在后臺(tái)運(yùn)行,每一分鐘檢查是否有預(yù)定的作業(yè)需要執(zhí)行。這類作業(yè)一般稱為cron jobs。crontab文件包含送交cron守護(hù)進(jìn)程的一系列作業(yè)和指令。每個(gè)用戶可以擁有自己的crontab文件;同時(shí),操作系統(tǒng)保存一個(gè)針對(duì)整個(gè)系統(tǒng)的crontab文件,該文件通常存放于/etc或者/etc之下的子目錄中,而這個(gè)文件只能由系統(tǒng)管理員來(lái)修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔為數(shù)個(gè)領(lǐng)域,每個(gè)領(lǐng)域可以放置單一或多個(gè)數(shù)值。
在Ubuntu中,crontab的命令如下:
-e 表示編輯當(dāng)前的crontab
-l 表示列表顯示當(dāng)前的crontab任務(wù)
-r 表示刪除當(dāng)前用戶的crontab
-i 表示刪除crontab時(shí)給予提示信息
注意,user's crontab這個(gè)表示是每個(gè)用戶都有自己的crontab,所以如果需要全局執(zhí)行,必須定制root用戶的crontab,非全局的,就根據(jù)各個(gè)用戶自己的crontab來(lái)執(zhí)行,在執(zhí)行編輯crontab操作時(shí),我們需要設(shè)置編輯工具,否則默認(rèn)是crontab的編輯,對(duì)于習(xí)慣vi編輯的用戶,我們需要在用戶目錄下設(shè)置.profile配置文件,如root的配置文件.prifile,就如下目錄:
帶.的文件都是隱藏文件,所以需要ls -a才能列出來(lái),vi .profile在文件中加入如下配置:
EDITOR=vi; export EDITOR
表示,當(dāng)前root用戶以vi作為默認(rèn)編輯器,此時(shí)直接使用crontab -e,可以進(jìn)行編輯任務(wù)列表,如下所示:
上面以#號(hào)開頭的表示是注釋說(shuō)明的信息,紅色標(biāo)記的是任務(wù)列表。
對(duì)于crontab的任務(wù)配置說(shuō)明;
分鐘 小時(shí) 日 月 星期 命令
* * * * * *
這樣就一目了然了,我們紅色標(biāo)記的表示的意義是每天3點(diǎn)鐘執(zhí)行腳本run.sh,并將執(zhí)行日志自動(dòng)輸出到log.log文件中。
*/1 * * * * root /opt/bin/test-cron.sh //表示每隔一分鐘執(zhí)行一次腳本
注:crontab任務(wù)是被定制在系統(tǒng)后臺(tái)運(yùn)行的cron進(jìn)程,所以用戶書無(wú)法查看到cron的進(jìn)程狀態(tài)的。設(shè)置開機(jī)啟動(dòng)cron進(jìn)程,命令如下:
chkconfig --add crond,把它加入到系統(tǒng)的服務(wù)列表中。
當(dāng)然,crontab命令用多了,會(huì)越來(lái)越喜歡它的,因?yàn)樗芎?jiǎn)化我們?nèi)粘5暮芏?a target="_self" style="word-break: break-all; color: #333333; text-decoration: none; line-height: normal !important; ">工作,特別是數(shù)據(jù)庫(kù)備份、檢測(cè)服務(wù)器運(yùn)行狀態(tài)等一些經(jīng)常做的工作,都可以根據(jù)你的需求來(lái)定制,在合理的時(shí)間運(yùn)行執(zhí)行合適的工作任務(wù),既不影響服務(wù)器的性能,又可以節(jié)約平時(shí)的工作時(shí)間,大大提高功能效率。
posted on 2011-12-19 17:12 順其自然EVO 閱讀(274) 評(píng)論(0) 編輯 收藏