linux/unix crontab命令詳解

xiexingzhi發表於2012-09-05
如果你的使用者名稱出現在/etc/cron.d/cron.allow 或 /usr/lib/cron/cron.allow中, 你就能夠執行Crontab命令,  
如果系統沒cron.allow這個檔案, 則如果你的名字沒有出現在/usr/lib/cron/cron.deny中,  你就能夠執行Crontab命令. 
如果沒有cron.allow檔案,但是有cron.deny檔案,但是cron.deny檔案為空 則所有人都可以執行crontab命令 
如果上面兩個檔案,系統都沒有,則只有root可以執行Crontabl.  
這兩個檔案的格式是: 每行一個使用者名稱  
除了root一般使用者沒有預設的crontab 所以一開始要用crontab -e 建立crontab,不建立則crontab -l會報錯 

所有使用者定義的 crontab 都被儲存在 /var/spool/cron 目錄中
cron 守護程式每分鐘都檢查 /etc/crontab 檔案、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。如果發現了改變,它們就會被載入記憶體。這樣,當某個 crontab 檔案改變後就不必重新啟動守護程式了。 


crontab命令的功能是在一定的時間間隔排程一些命令的執行。在/etc目錄下有一個crontab檔案,這裡存放有系統執行的一些排程程式。每個使用者可以建立自己的排程crontab。 

crontab命令有三種形式的命令列結構: 

crontab [-u user] [file] 

crontab [-u user] [-e|-l|-r] 

crontab -l -u [-e|-l|-r] 第一個命令列中,file是命令檔案的名字。如果在命令列中指定了這個檔案,那麼執行crontab命令,則將這個檔案拷貝到crontabs目錄下;如果在命令列中沒有制定這個檔案,crontab命令將接受標準輸入(鍵盤)上鍵入的命令,並將他們也存放在crontab目錄下。 

命令列中-r選項的作用是從/usr/spool/cron/crontabs目錄下刪除使用者定義的檔案crontab; 

命令列中-l選項的作用是顯示使用者crontab檔案的內容。 

使用命令crontab -u user -e命令編輯使用者user的cron(c)作業。使用者通過編輯檔案來增加或修改任何作業請求。 

執行命令crontab -u user -r即可刪除當前使用者的所有的cron作業。 

作業與它們預定的時間儲存在檔案/usr/spool/cron/crontabs/username裡。username使使用者名稱,在相應的檔案中存放著該使用者所要執行的命令。命令執行的結果,無論是標準輸出還是錯誤輸出,都將以郵件形式發給使用者。檔案裡的每一個請求必須包含以spaces和tabs分割的六個域。前五個欄位可以取整數值,指定何時開始工作,第六個域是字串,稱為命令欄位,其中包括了crontab排程執行的命令。 

第一道第五個欄位的整數取值範圍及意義是: 

0~59 表示分 

1~23 表示小時 

1~31 表示日 

1~12 表示月份 

0~6 表示星期(其中0表示星期日) 

/usr/lib/cron/cron.allow表示誰能使用crontab命令。如果它是一個空檔案表明沒有一個使用者能安排作業。如果這個檔案不存在,而有另外一個檔案/usr/lib/cron/cron.deny,則只有不包括在這個檔案中的使用者才可以使用crontab命令。如果它是一個空檔案表明任何使用者都可安排作業。兩個檔案同時存在時cron.allow優先,如果都不存在,只有超級使用者可以安排作業。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22531473/viewspace-742730/,如需轉載,請註明出處,否則將追究法律責任。

相關文章