| 使用者的設定: crontab 使用者想要建立例行性命令時(shí),使用的是 crontab 這個(gè)指令啦~不過(guò),為了安全性的問(wèn)題, 與 at 同樣的,我們可以限制使用 crontab 的使用者帳號喔!使用的限制資料有:
當使用者使用 crontab 這個(gè)指令來(lái)建立工作排程之後,該項工作就會(huì )被紀錄到 /var/spool/cron/ 裡面去了,而且是以帳號來(lái)作為判別的喔!舉例來(lái)說(shuō), dmtsai 使用 crontab 後, 他的工作會(huì )被紀錄到 /var/spool/cron/dmtsai 裡頭去!但請注意,不要使用 vi 直接編輯該檔案, 因為可能由於輸入語(yǔ)法錯誤,會(huì )導致無(wú)法執行 cron 喔!另外, cron 執行的每一項工作都會(huì )被紀錄到 /var/log/cron 這個(gè)登錄檔中,所以囉,如果您的 Linux 不知道有否被植入木馬時(shí), 也可以搜尋一下 /var/log/cron 這個(gè)登錄檔呢! 好了,那麼我們就來(lái)聊一聊 crontab 的語(yǔ)法吧!
比較有趣的是那個(gè)『週』喔!當週為 0 或 7 時(shí),都代表『星期天』的意思!另外, 還有一些輔助的字符,大概有底下這些:
我們就來(lái)搭配幾個(gè)例子練習看看吧!
那個(gè) crontab 每個(gè)人都只有一個(gè)檔案存在,就是在 /var/spool/cron 裡面??! 還有建議您:『指令下達時(shí),最好使用絕對路徑,這樣比較不會(huì )找不到執行檔喔!』
真的是很簡(jiǎn)單吧!呵呵!那麼,該如何查詢(xún)使用者目前的 crontab 內容呢? 我們可以這樣來(lái)看看:
![]() 這個(gè)『 crontab -e 』是針對使用者的 cron 來(lái)設計的,如果是『系統的例行性任務(wù)』時(shí), 該怎麼辦呢?是否還是需要以 crontab -e 來(lái)管理你的例行性命令呢?當然不需要,你只要編輯 /etc/crontab這個(gè)檔案就可以啦!有一點(diǎn)需要特別注意喔!那就是 crontab -e 這個(gè) crontab 其實(shí)是 /usr/bin/crontab 這個(gè)執行檔,但是 /etc/crontab 可是一個(gè)『純文字檔』喔!你可以 root 的身份編輯一下這個(gè)檔案哩! 基本上, cron 這個(gè)服務(wù)的最低偵測限制是『分鐘』,所以『 cron 會(huì )每分鐘去讀取一次 /etc/crontab 與 /var/spool/cron 裡面的資料內容 』,因此,只要你編輯完 /etc/crontab 這個(gè)檔案,並且將他儲存之後,呵呵!那麼 cron 的設定就自動(dòng)的會(huì )來(lái)執行了!
好!你現在大概瞭解了這一個(gè)咚咚吧!OK!假設你現在要作一個(gè)目錄,讓系統可以每 2 分鐘去執行這個(gè)目錄下的所有可以執行的檔案,你可以寫(xiě)下如下的這一行在 /etc/crontab 中:
如何???建立例行性命令很簡(jiǎn)單吧!如果你是系統管理員的話(huà),直接修改 /etc/crontab 這個(gè)檔案即可喔!又便利,又方便管理呢! ![]() 有的時(shí)候,我們以系統的 cron 來(lái)進(jìn)行例行性工作的建立時(shí),要注意一些使用方面的特性。 舉例來(lái)說(shuō),如果我們有四個(gè)工作都是五分鐘要進(jìn)行一次的,那麼是否這四個(gè)動(dòng)作全部都在同一個(gè)時(shí)間點(diǎn)進(jìn)行? 如果同時(shí)進(jìn)行,該四個(gè)動(dòng)作又很耗系統資源,如此一來(lái),每五分鐘不是會(huì )讓系統忙得要死? 呵呵!此時(shí)好好的分配一些執行時(shí)間,呵呵!就 OK 啦!所以,注意一下: 當大量使用 crontab 的時(shí)候,總是會(huì )有問(wèn)題發(fā)生的,最嚴重的問(wèn)題就是『系統資源分配不均』的問(wèn)題, 以鳥(niǎo)哥的系統為例,我有偵測流量的資訊,包括:
另外一個(gè)困擾發(fā)生在『 當有執行成果或者是執行的項目中有輸出的資料時(shí),該資料將會(huì ) mail 給 MAILTO 設定的帳號 』,好啦,那麼當有一個(gè)排程一直出錯(例如 DNS 的偵測系統當中,若 DNS 上層主機掛掉,那麼你就會(huì )一直收到錯誤訊息?。┰觞N辦?呵呵!還記得 BASH 與 Shell scripts 那一章吧???直接以『命令重導向』將輸出的結果輸出到 /dev/null 這個(gè)垃圾桶當中就好了! 很多時(shí)候被植入木馬都是以例行命令的方式植入的,所以可以藉由檢查 /var/log/cron 的內容來(lái)視察是否有『非您設定的 cron 被執行了?』這個(gè)時(shí)候就需要小心一點(diǎn)囉! |
聯(lián)系客服