作為系統(tǒng)管理員,很多時(shí)候我們需要進(jìn)行很多重復(fù)的工作,比如每天開機(jī)自動啟動一些服務(wù),定期清理系統(tǒng)垃圾文件等等。所以如果可以創(chuàng)建計(jì)劃任務(wù),我們就可以按需有計(jì)劃的執(zhí)行重復(fù)的工作,為自己省下不少時(shí)間,也可以避免一遍遍執(zhí)行時(shí)的出錯(cuò)率。
linux下實(shí)現(xiàn)計(jì)劃任務(wù)主要有以下幾種方法:at命令,batch命令,cron服務(wù)以及anacron。
at:指定一個(gè)時(shí)間執(zhí)行一個(gè)任務(wù) (適用一個(gè)或多個(gè)任務(wù),執(zhí)行一次后就不用)----batch類似at,只是在系統(tǒng)空閑時(shí)執(zhí)行而以。
cron:根據(jù)一個(gè)時(shí)間表自動執(zhí)行任務(wù) (使用一個(gè)或多個(gè)任務(wù),周期性執(zhí)行)
anacron:在一個(gè)指定時(shí)間間隔錯(cuò)過后自動執(zhí)行任務(wù)
下面我們就來看一下如何實(shí)現(xiàn)。
、 at:
格式:at 時(shí)間
例如#at now+3min ----------》進(jìn)入at編輯模式,并指定3分鐘后執(zhí)行計(jì)劃任務(wù)
在編輯模式輸入計(jì)劃任務(wù)命令,多命令<enter>操作,最后Ctrl+D鍵結(jié)束
at也有許多選項(xiàng),常用的有
-l:列出未執(zhí)行的任務(wù)(等同于atq命令)
-d:刪除還未執(zhí)行的額任務(wù)(等同于atrm命令)
還可以進(jìn)入到/var/spool/at目錄里把計(jì)劃任務(wù)刪除,計(jì)劃任務(wù)的文件都保存在該目錄里,可以用rm -f 文件名來刪除(以文件的形式刪除計(jì)劃任務(wù),因?yàn)橛?jì)劃任務(wù)是以文件形式保存在該目錄中)
、 cron
cron作為一個(gè)服務(wù),必須先啟動后才可以使用;所以必須安裝vixie-cron-version軟件包,之后啟動服務(wù):service crond start
使用corntab 命令定義cron任務(wù)。corntab 又分為系統(tǒng)和用戶級別,我們主要定義用戶級別
#crontab -----------》定義計(jì)劃任務(wù)
-e :打開并編輯計(jì)劃任務(wù)。–rontab –e 編輯的任務(wù)不要加入用戶名,默認(rèn)為當(dāng)前用戶建立計(jì)劃任務(wù))
-l: 列出所有計(jì)劃任務(wù)
-r:刪除所有計(jì)劃任務(wù)
-u:指定為某用戶建立計(jì)劃
其實(shí)執(zhí)行crontab是在/var/spool/cron/下建立了以用戶名命名的文件,里面寫入的即時(shí)你手動執(zhí)行crontab的內(nèi)容,所以也可以通過手動建立這個(gè)文件的方式指定計(jì)劃任務(wù)
crontab輸入的命令格式為: * * * * * command,例如:
*/5 * * * * ping -c1 192.168.0.155----------》每隔5秒執(zhí)行 ping -c1 192.168.0.155。
前5段分別代表分,時(shí),天,月,周即:
第一個(gè)*星號代表個(gè)小時(shí)的第幾分鐘:minute 范圍是從0-59
第二個(gè)*星號代表每天的第幾個(gè)小時(shí):hour 范圍是從0-23
第三個(gè)*星號代表每月的第幾個(gè)日:day-of-month 范圍從1-31
第四個(gè)*星號代表沒年的第幾個(gè)月:month-of-year 范圍從1-12
第五個(gè)*星號代表每周的星期幾:day-of-week 范圍從0-6,其中0表示星期日
* :匹配對應(yīng)時(shí)間段上的所有時(shí)間
/ : 匹配對應(yīng)時(shí)間域上沒隔多久的時(shí)間
- : 匹配任意段連續(xù)時(shí)間
,:匹配時(shí)間域上不連續(xù)的時(shí)間
例如:25 * 10 9 * ls var/spool/cron ---------》9月10號25分執(zhí)行l(wèi)s查看var/spool/cron 目錄
5 6 * * * /usr/bin/updatedb ---------》每隔6小時(shí)更新locate命令的數(shù)據(jù)庫
另外cron服務(wù)時(shí)有ACL的,由/etc/cron.allow /etc/cron.deny兩個(gè)文件具體定義 ,默認(rèn)只有root才可以定義cron計(jì)劃任務(wù)
/etc/cron.allow :僅允許此文件內(nèi)的用戶建立計(jì)劃
/etc/cron.deny : 僅拒絕此文件內(nèi)用戶建立計(jì)劃 (若cron.allow存在,忽略此文件)
、 anacron: 對cron的補(bǔ)充,他可以讓一些因?yàn)殛P(guān)機(jī)而錯(cuò)過執(zhí)行的任務(wù)在開機(jī)后繼續(xù)執(zhí)行,配置文件為/etc/anacrontab,其內(nèi)容形如:
1 20 cron.daily /etc/cron.daily ---------->對于超過1天未執(zhí)行的任務(wù),在下次開機(jī)20分鐘后執(zhí)行
好了,簡單講到這里吧,大家慢慢練習(xí)!
億恩科技地址(ADD):鄭州市黃河路129號天一大廈608室 郵編(ZIP):450008 傳真(FAX):0371-60123888
聯(lián)系:億恩小凡
QQ:89317007
電話:0371-63322206 本文出自:億恩科技【www.allwellnessguide.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|