温馨提醒

亲爱的游客,你的浏览器太旧啦.都啥年代了.为了你的安全,为了你的体验,为更好的浏览本页, 赶紧更新一把吧.....本博客不支持ie8以下浏览器,如果你使用的是ie浏览器,请您更新到ie8或以上版本.

推荐使用谷歌浏览器(chrome)或火狐浏览器(Firefox),点击下方按键进行安装

码农部落

  ——好记性,不如烂博客!

crontab命令详解

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。再说通俗点就是定时执行命令,或运行一个程序。
要用这个命令,首先要启动定时服务:

service cron start

查看当前定时任务:

crontab -l

添加或修改定时任务:

crontab -e

第一次运行 crontab -e 的时候,会提示选择用什么编辑器来编辑任务。
如果觉得当前编辑器,用不习惯,用下面的命令可以来修改。

select-editor


下面开始进入主题,命令的基本格式 :

*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

为了讲解方便,上面五个*(分 时 日 月 周)我用f1 f2 f3 f4 f5来代替。
时程表的格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
当 f1 为 a, b, c,… 时表示第 a, b, c,… 分钟要执行,f2 为 a, b, c,… 时表示第 a, b, c…个小时要执行,其余类推
使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。
由于unix版本不一样,所以部分语法有差别,例如在hp unix aix 中设定间隔执行如果采用*/n 方式将出现语法错误,在这类unix中 ,间隔执行只能以列举方式,详请见例子。
说了一大堆废话后,下面来些实际的例子:
每晚的21:30重启apache

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

上面的例子就是*号的作用,代表”每”,简单点理解,就是这没有了这个限定条件。上面的日、月、周都为*,我们可以把日、月、周忽略掉。剩下的30 21就代表21:30分执行后面的命令。
每一小时重启apache

* */1 * * * /usr/local/etc/rc.d/lighttpd restart

每天18 : 00至23 : 00之间每隔30分钟重启apache

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

每天18 : 00至23 : 00之间每隔30分钟重启apache也可以写成这样
*/30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

码农部落
声明:本博客文章多数为博主笔记,绝无版权问题,欢迎转载(能注明出处更好),有任何问题,请在下方评论框留言.


发表评论

电子邮件地址不会被公开。 必填项已用*标注