> Linux教程 > 系统运维 >

Linux设置定时任务crontab

在Linux系统下,crontab是最常用的定时任务。常用的crontab命令主要有两个:

- crontab -e 执行文字编辑器来设定时程表,内定的文字编辑器是VI

- crontab -l 列出目前的定时任务列表

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

 

crontab定时任务的一些案例 
30 3 * * * /alidata/server/httpd/bin/apachectl restart
上面的例子表示每晚的3:30重启apache 
50 4 1,10,20 * * /alidata/server/httpd/bin/apachectl restart  
上面的例子表示每周六、周日的13 : 10重启apache。 
* */1 * * * /alidata/server/httpd/bin/apachectl restart 
每一小时重启apache 

* 23-7/1 * * * /alidata/server/httpd/bin/apachectl restart 
晚上11点到早上7点之间,每隔一小时重启apache 

 

注意事项:

1、设置定时任务一般日期和星期不同时设置

2、调试任务一般注意先手动执行脚本看是否可以执行,另外脚本放在定时任务不执行,建议放在普通用户权限下测试是否可以手动执行,同时检查环境变量的配置

3、以centos为例,默认定时任务执行日志在/var/log/cron

4、一般情况下会在脚本后面加重定向到/dev/null 2>&1

例如定时任务 */3 * * * * root /usr/local/ping.sh > /dev/null 2>&1

即错误输出与标准输出全部重定向到空,定时任务执行成功或者失败时,程序会向上层发送mail,由于平时工作中不打开sendmail功能,所以邮件会存储在临时目录/var/spool/clientmqueue,随着执行的任务次数多,文件也会越来越多,直到某一天,添加文件时,提示No space left on device,主要问题原因不在于垃圾文件会占很大空间,而在于每个文件会占用inode节点。

5、在部署到线上服务器之前,建议先在测试服务器上测试好。


 

(责任编辑:IT)