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