2007
03.31

crontab 的格式备忘

经常用,但是经常忘记,基本的格式能记得,但是详细的或者复杂点的格式总会忘记或者拿不准,不知道是不是年纪大了记忆力下降,干脆整理出来今后方便查看。

基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

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

crontab文件的一些例子:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。

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

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

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

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

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd

19 comments so far

Add Your Comment
  1. zhangzijian on April 1, 2007 at 6:35 am  (Quote) said:

    呵呵,为什么不把常用的,但记不住的东西打印出来,放在手边呢?其实也不是年龄大了,很多人都无法记住这些…

    嗯,言之有理,我之前就是整理了一些BSD系统各种应急处理方法,打印了放在笔记本包包里面,还真是用到了好几次。

  2. Javayou on April 5, 2007 at 5:53 pm  (Quote) said:

    可是为什么要重启apache呢? 哈

    我习惯用的时候再来找,但是前提是知道有这么个东西

    哈哈,这个只是个例子而已了:)实际并不重启,我经常一个月也不用重启一次,现在服务器用的webServer是Nginx,不是Apache,你可以telnet后GET看看header,嘿嘿

  3. bssn on September 13, 2007 at 11:31 am  (Quote) said:

    这个是重启apache的?
    30 21 * * * /usr/local/etc/rc.d/lig…

    哈哈,这个只是个书写的范例罢了,文章的主要目的不是为了记录这个,而是crontab的格式 :)

  4. L0uiS on September 22, 2007 at 9:03 pm  (Quote) said:

    0,1 * * * * /usr/L0uiS/Bishop/guard/AutoStartKFXG…

    每小时的整点和每小时的第一分钟执行一次,不是每分钟,如果每分钟可以写成 * * * * * cmd 或者 */1 * * * * cmd 不过第二种方式在solaris下不生效,仅Linux下有效。

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word