因爲今天想定時執行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