• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
ECS Linux设置定时任务crontab的具体操作方法
发布日期:2015-12-30 14:12:11

  在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、一般情况下会在脚本后面加重定向到/dev/null 2>&1

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

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

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

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

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