crontab格式:
第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
还可以用一些特殊符号:
*: 表示任何时刻
,: 表示分割
-:表示一个段,如第二端里: 1-5,就表示1到5点
/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.
这里有crontab文件条目的一些例子:
0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行
*/10 * * * * 每隔10分 执行
30 21 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/apache/bin/apachectl restart
上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/apache/bin/apachectl restart
上面的例子表示每周六、周日的1 : 10重启apache。
0,30 18-23 * * * /usr/local/apache/bin/apachectl restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/apache/bin/apachectl restart
上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/apache/bin/apachectl restart
每一小时重启apache
* 23-7/1 * * * /usr/local/apache/bin/apachectl restart
晚上11点到早上7点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/apache/bin/apachectl restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/apache/bin/apachectl restart
一月一号的4点重启apache
crontab命令:
crontab查看,编辑,重启,停止,开始
crontab -[l,e] service crond [restart,stop,start]
值得注意的地方,crontab里定时调用命令时,命令如果不在crontab的classpath里,要带全路径。
比如mysql应该写为 /usr/local/mysql/bin/mysql
2>&1 含义
在这里有有几个数字的意思:
0表示键盘输入
1表示标准输出
2表示错误输出.
在2>&1中,如果没有&,表示输出到1文件。
举例:
#pwd
/test
#ls
#ls 2>1
有错误输出到1文件。
#ls xxx 2>&1
将产生没有xxx文件的错误输出到屏幕
cannot access xxx: No such file or directory