Ubuntu使用crontab定時任務

因爲今天想定時執行postgres的一些腳本,所以在網上查一下有一個crontab的命令,就把這個命令的使用記錄一下,方便日後查找.

cron是一個[守護程序]用於在指定的時間內執行行程類的任務,每一個用戶都有一個 crontab 文件,來允許他們指定需要執行的內容和時間,此外,系統也有一個 crontab ,用來允許像交替日誌和更新本地數據這樣有規則的任務。

環境:Ubuntn 12.10

1.使用 crontab -e命令

這個命令比較簡單直接輸入就可以

#:crontab -e

出現如下窗口(第一次會提示你用那個編譯器,隨便選 一個就行了)

之後就可以輸入你想執行的內容了.

比如:*/2 * * * * date >> /home/postgres/time.log 它的意思就是每過兩分鐘就向time.log文件中寫入當然的系統時間.

之後ctrl+X退出保存就行了.

2.保存crontab之後,我們還要重啓crontab服務來使這個任務生效.

sudo service cron restart

3.看一下結果

vim /home/postgres/time.log

參數說明(我找的很多例子,看看就明白了.)

# m h  dom mon dow  command

m 分鐘 0-59

h 小時 0-23

dow 天1-31

mon 月 1-12

dow  星期 1-6  0表示星期天

command 就是要執行的命令


除了這些固定值外,還可以配合星號(*),逗號(,),和斜線(/)來表示一些其他的含義:
 

 
星號          表示任意值,比如在小時部分填寫 * 代表任意小時(每小時)
 
逗號          可以允許在一個部分中填寫多個值,比如在分鐘部分填寫 1,3 表示一分鐘或三分鐘
 
斜線          一般配合 * 使用,代表每隔多長時間,比如在小時部分填寫 */2 代表每隔兩分鐘。所以 */1 和 * 沒有區別
 

1. * * * * *      date >> /home/postgres/time.log            # 每隔一分鐘執行一次任務  
2. 0 * * * *      date >> /home/postgres/time.log          # 每小時的0點執行一次任務,比如6:00,10:00  
3. 6,10 * 2 * *    date >> /home/postgres/time.log      # 每個月2號,每小時的6分和10分執行一次任務  
4. */3,*/5 * * * *  date >> /home/postgres/time.log        # 每隔3分鐘或5分鐘執行一次任務,比如10:03,10:05,10:06

 

3 * * * * /home/meng/hello.sh就是:每小時的03分執行/home/meng/下的hello.sh腳本*/5 9-17 * * mon,tue,wed,thur,fri wall "Are we there yet?"
 
5 3 * * * /usr/bin/apt-get update 就是每天的03:05執行“/usr/bin/apt-get update
 
*/5 9-17 * * mon,tue,wed,thur,fri wall "Are we there yet?" 就是在所有的工作日的(9-17點)每過5分鐘出現"Are we there Yet?"
 
#每晚的21:30重啓apache。
30 21 * * * /usr/local/etc/rc.d/lighttpd restart

#每月1、10、22日
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

#每天早上6點10分
10 6 * * * date

#每兩個小時
0 */2 * * * date

#晚上11點到早上8點之間每兩個小時,早上8點
0 23-7/2,8 * * * date

#每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
0 11 4 * mon-wed date

#1月份日早上4點
0 4 1 jan * date



轉自: http://www.linuxidc.com/Linux/2013-05/84770.htm

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章