国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

Linux命令下crontab命令

2024-09-05 23:02:55
字體:
來源:轉載
供稿:網友

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/voice
20 * * * * $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運行的任務輸出以電子郵件的形式發送到指定用戶,如果該變量的值為空,則不會發送郵件。余下幾行的內容說明了系統定時任務的具體書寫格式。

crontab命令

       1)星號(*)表示取值范圍內的所有值。例如,*在hour的位置,表示每小時執行一次。

  2)連字符(-)表示一個范圍。例如,8-12表示8、9、10、11、12。

  3)逗號(,)表示分割指定的數值。例如:3,5-7,9表示3,5,6,7,9。

  4)正斜杠(/)表示步進值。例如,分鐘的位置為*/5,表示每五分鐘執行一次。

  除了root用戶以外的所有用戶定義的crontab計劃任務都存放在/var/spool/cron目錄,通過crontab -e命令編輯,格式與/etc/crontab相同,可以不用指定user-name。

  cron服務會每分鐘檢查一次/etc/crontab、/etc/cron.d/和/var/spool/cron/中的所有文件,并依此執行。

6. 實例

  實例1:每周末的凌晨一點鐘執行一次系統的raid-check

0 1 * * Sun root /usr/sbin/raid-check 

實例2:每天的4:02am分root用戶執行/etc/cron.daily目錄下的所有腳本,run-parts參數表示執行后面目錄中的所有腳本。

02 4 * * * root run-parts /etc/cron.daily 

實例3:每天的8-18每四小時,dodmaster用戶執行hislogclear.sh腳本,即8:44,12:44,16:44,20:44四個時間點,會執行該腳本。

[21:57:56][dodmaster@mha3 ~]$ crontab -l
44 8-20/4 * * * $HOME/.DailyShell/hislogclear.sh
  實例4:每五分鐘執行一次(兩種寫法)

*/5 * * * * echo "every five minute to do it" >> time.txt
5 * * * * echo "every five minute to do it" >> time.txt  

實例5:每個工作日下午八點執行

0 20 * * 1-5 echo "every workday 20:00 to do it" >> time.txt 

實例6:每分鐘的30秒時執行,因為cron服務是每分鐘被喚醒一次,所以要執行精確到秒的任務需要借助sleep命令。

* * * * * sleep 30; echo "every minute 30 second to do it" >> time.txt
  實例7:每20秒執行一次,即表示在每分鐘的0秒、20秒、40秒各執行一次(也可以是其他的步長是20秒的值,例如:5s、25s、45s)

* * * * * echo "every 20 second to do it" >> time.txt
* * * * * sleep 20; echo "every 20 second to do it" >> time.txt
* * * * * sleep 40; echo "every 20 second to do it" >> time.txt

以上所述是小編給大家介紹的Linux命令下crontab命令,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漾濞| 土默特左旗| 吴堡县| 平湖市| 新晃| 潼关县| 平定县| 隆德县| 墨竹工卡县| 崇州市| 桃园市| 彰武县| 潍坊市| 长丰县| 黄冈市| 南京市| 广州市| 平阴县| 南涧| 营山县| 安岳县| 宣恩县| 新民市| 寿阳县| 景泰县| 广州市| 丘北县| 吉安县| 尼玛县| 阳曲县| 延津县| 始兴县| 色达县| 阿勒泰市| 浦东新区| 白沙| 龙南县| 靖边县| 抚松县| 隆回县| 台北市|