crontab命令
时间:2007-02-02 来源:darrenshen
简介
crontab命令的功能是在一定的时间间隔调度一些命令的执行。在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。
Linux 工作排程的種類: at, cron
![]() 使用者想要建立例行性命令時,使用的是 crontab 這個指令啦~不過,為了安全性的問題, 與 at 同樣的,我們可以限制使用 crontab 的使用者帳號喔!使用的限制資料有:
當使用者使用 crontab 這個指令來建立工作排程之後,該項工作就會被紀錄到 /var/spool/cron/ 裡面去了,而且是以帳號來作為判別的喔!舉例來說, dmtsai 使用 crontab 後, 他的工作會被紀錄到 /var/spool/cron/dmtsai 裡頭去!但請注意,不要使用 vi 直接編輯該檔案, 因為可能由於輸入語法錯誤,會導致無法執行 cron 喔!另外, cron 執行的每一項工作都會被紀錄到 /var/log/cron 這個登錄檔中,所以囉,如果您的 Linux 不知道有否被植入木馬時, 也可以搜尋一下 /var/log/cron 這個登錄檔呢! 好了,那麼我們就來聊一聊 crontab 的語法吧!
比較有趣的是那個『週』喔!當週為 0 或 7 時,都代表『星期天』的意思!另外, 還有一些輔助的字符,大概有底下這些:
我們就來搭配幾個例子練習看看吧!
那個 crontab 每個人都只有一個檔案存在,就是在 /var/spool/cron 裡面啊! 還有建議您:『指令下達時,最好使用絕對路徑,這樣比較不會找不到執行檔喔!』
真的是很簡單吧!呵呵!那麼,該如何查詢使用者目前的 crontab 內容呢? 我們可以這樣來看看:
![]() 這個『 crontab -e 』是針對使用者的 cron 來設計的,如果是『系統的例行性任務』時, 該怎麼辦呢?是否還是需要以 crontab -e 來管理你的例行性命令呢?當然不需要,你只要編輯 /etc/crontab這個檔案就可以啦!有一點需要特別注意喔!那就是 crontab -e 這個 crontab 其實是 /usr/bin/crontab 這個執行檔,但是 /etc/crontab 可是一個『純文字檔』喔!你可以 root 的身份編輯一下這個檔案哩! 基本上, cron 這個服務的最低偵測限制是『分鐘』,所以『 cron 會每分鐘去讀取一次 /etc/crontab 與 /var/spool/cron 裡面的資料內容 』,因此,只要你編輯完 /etc/crontab 這個檔案,並且將他儲存之後,呵呵!那麼 cron 的設定就自動的會來執行了!
好!你現在大概瞭解了這一個咚咚吧!OK!假設你現在要作一個目錄,讓系統可以每 2 分鐘去執行這個目錄下的所有可以執行的檔案,你可以寫下如下的這一行在 /etc/crontab 中:
如何!?建立例行性命令很簡單吧!如果你是系統管理員的話,直接修改 /etc/crontab 這個檔案即可喔!又便利,又方便管理呢!
限制用戶使用 crontab基於安全問題,在 Linux 下可以限制用戶使用 crontab 排程,而要設定的檔案分別有 /etc/cron.allow 及 /etc/cron.deny,它們的定義分別是:
/etc/cron.allow
/etc/cron.deny 在使用時只會選擇以上其一個設定檔來限制,其中以 /etc/cron.allow 比 /etc/cron.deny 優先。而寫入的格式必須是每一個使用者一行。 另一點要注意的是,不管 root 是否在以上檔案內,都可以使用 crontab。 |