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

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