crontab相關命令及表達式 (Linux系統定時任務)

1.重啓crontab服務(root):service crond restart
2.編輯crontab設置(用戶):crontab -e
0 8 * * * /home/hudson/slave/agentReboot.sh >/dev/null 2>&1
3.查看crontab設置(用戶):crontab -l
0 8 * * * /home/hudson/slave/agentReboot.sh >/dev/null 2>&1
注意,後面的>/dev/null 2>&1是爲了避免使crontab做業運行時給用戶郵箱裏發送郵件
4.crontab做業的環境變量須要作一些特別的設置,或者對命令寫出其全路徑 apache

5.crontab表達式 學習

Linux下面的crontab表達式是一個很神奇的表達式,幾乎全部有意義的時間都能表示出來,最近因爲某些緣由,也對這個學習了一下。
* * * * * commond
前面的五個星號分別表示 分 時 日 月 周,commond表示你要操做的命令
分(1-59)(*或*/1表示每分鐘)
時(1-23)(0表示0點)
日(1-31)
月(1-12)
周(1-6)(0表示週日)
使用方式 : 
crontab file [-u user]-用指定的文件替代目前的crontab。 
crontab-[-u user]-用標準輸入替代目前的crontab. 
crontab-1[user]-列出用戶目前的crontab. 
crontab-e[user]-編輯用戶目前的crontab. 
crontab-d[user]-刪除用戶目前的crontab. 
crontab-c dir- 指定crontab的目錄。 
crontab文件的格式:M H D m d cmd.
 
一些crontab的使用例子:
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啓apache。


45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每個月一、十、22日的4 : 45重啓apache。


10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每週6、週日的1 : 10重啓apache。


0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在天天18 : 00至23 : 00之間每隔30分鐘重啓apache。


0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重啓apache。


* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小時重啓apache


* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11點到早上7點之間,每隔一小時重啓apache


0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每個月的4號與每週一到週三的11點重啓apache


0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一號的4點重啓apache
 
這裏就介紹一些基礎,能夠引導入門,可是詳細的還得深刻學習。 rest

6.cron表達式: crontab

一個cron表達式有6個必選的元素和一個可選的元素,各個元素之間是以空格分隔的,從左至右,這些元素的含義以下表所示: cmd

表明含義            是否必須  容許的取值範圍                 容許的特殊符號
 
秒                     是            0-59                               , - * /
 
分鐘                  是            0-59                               , - * /

小時                  是            0-23                               , - * /

月份中的天數      是            1-31                               , - * / ? L W C
 
月份                  是            1-12或JAN-DEC               , - * /
 
星期中的天數      是            1-7或SUN-SAT                 , - * / ? L #
 
年                     否            empty,1970-2099         , - * / 入門

*:表明全部可取的值,好比說,若是分鐘爲*,那麼就表示每一分鐘; 基礎

?:只有月份中的天數和星期中的天數可使用?來表示,由於「月份中的天數」和「星 變量

  期中的天數」不能同時設值,因此咱們能夠經過?來代表不想設置的那個元素; file

-:用來指定一個範圍類的值,好比說,小時爲」10-12」,它就表示10點、11點、12點 service

,:逗號用來分隔一個元素的多個值,好比說「星期中的天數」爲"MON,WED,FRI",

  它就表示周1、週三和週五。

/:斜槓用來表示間隔,好比說,秒數爲5/10,那麼它就表示第5秒、第15秒、第

  25秒、第35秒、第45秒和第55秒。斜槓前的數字表示起始位置,後面的數字表

  示每次增加的數量。

L:僅用在「月份中的天數」和「星期中的天數」元素中。若是是前者,它表明某月的

   最後一天;若是是後者,它就表示是週六。有一點特別的,當表示「星期中的天數」

   時,L能夠和數字一塊兒用,好比」6L」,它就表示這個月的最後一個星期五。

W:只能用來表示「月份中的天數」,和數字一塊兒使用。好比說15W,它就表示離這

    個月15號最近的工做日。使用W時,「月份中的天數」必須爲一個指定的日期,

    而不能是一個範圍的日期。

#:只能用來表示「星期中的天數」。例如5#4,它表示某個月中第四個星期四,2#1

   表示某個月中第一個星期一。#前面的數字表明星期,後面的數字表示是第幾個。

相關文章
相關標籤/搜索