crontab是一個用來設置、刪除或顯示供守護進程cron執行的定時任務的命令。每一個用戶都可以擁有屬于自己的定時任務,定時任務文件默認以用戶名命名,并放在/var/spool/cron目錄,該目錄普通用戶無訪問權限。
可以通過cron.allow 和 cron.deny文件管理用戶使用crontab的權限。如果cron.allow存在,用戶必須列在其中才會被允許使用cron;如果cron.deny存在,被列在其中的用戶禁止使用cron;如果兩者都不存在,只有超級用戶才能使用cron。在CentOS中,這兩個文件放在/etc中,默認只存在cron.deny文件,且為空。這就表示在CentOS中,默認所有的用戶均有cron的使用權限。
1. 命令格式
crontab [-u user] file crontab [-u user] [-l | -r | -e] [-i] [-s] crontab -n [ hostname ] crontab -c
2. 命令功能
為個人用戶維護定時任務文件
3. 命令選項
-u user
編輯某個用戶的cron,只用root可以使用此參數為別的用戶設置cron服務。也可用于給用戶指定crontab文件。
-l
列出當前用戶的crontab。
-r
刪除當前用戶的crontab。
-e
編輯當前用戶的crontab,默認使用vi,或者是由 VISUAL或EDITOR環境變量指定的編輯器。
-i
與-r一起使用,用來詢問用戶是否直接刪除crontab。
4. 實例
實例1:列出當前用戶的定時任務
[22:30:17][dodmaster@mha3 ~]$ crontab -l
0 1 * * 1 $HOME/.DailyShell/hislogclear.sh 0 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/voice20 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/data/40 * * * * $HOME/.DailyShell/mvcdr2bak.sh $HOME/data/message/sms/實例2:root用戶編輯用戶martin的定時任務
[22:30:17][root@mha3 ~]# crontab -u martin -e
實例3:為用戶martin指定定時任務文件
[22:30:17][root@mha3 ~]# crontab -u martin martincron
5. cron文件語法
首先,我們打開/etc/crontab文件,我們將會看到如下內容:
[20:40:30][dodmaster@mha3 etc]$ cat /etc/crontab SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# For details see man 4 crontabs# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed
該文件是存放系統執行的定時計劃,其中前四行用于設置cron服務運行的環境變量:SHELL、PATH、HOME分別指定了cron服務運行時的SHELL環境變量、PATH環境變量和HOME環境變量,這里不再贅述。MAILTO則表示cron運行的任務輸出以電子郵件的形式發送到指定用戶,如果該變量的值為空,則不會發送郵件。余下幾行的內容說明了系統定時任務的具體書寫格式。

1)星號(*)表示取值范圍內的所有值。例如,*在hour的位置,表示每小時執行一次。
2)連字符(-)表示一個范圍。例如,8-12表示8、9、10、11、12。
新聞熱點
疑難解答