Blog·Tanky WooABOUTTAGSRSS

cron的软件很多,这里使用 vixie-cron,平台Ubuntu 12.04

cron的配置文件可在三个地方存放:

  • /var/spool/cron/crontabs/
  • /etc/crontab
  • /etc/cron.d/

/var/spool/cron/crontabs/ 通过crontab命令来控制, 属于用户的, 所以这个命令设置了guid, 属于crontab用户组.

/etc/crontab 默认是控制 /etc/cron.*, 如/etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly这些

/etc/cron.d/ 目录下也是存放crontab的配置文件.

/etc/crontab/etc/cron.d/ 在配置定时任务时,需要指定用户是root,而/var/spool/cron/crontabs/已经是属于用户控制的, 所以不需要指定用户, 这是格式上的区别.

cron 设置的默认环境变量:

  • $SHELL: /bin/sh
  • $PATH: /usr/bin:/bin

如果没有设置相关的环境变量,会造成如$PATH问题导致的命令找不到.

可以在cron配置文件顶部加上:

SHELL=/bin/bash
PATH=/usr/bin:/bin:/sbin:/usr/sbin
*/5 * * * * root ./run.sh >/dev/null 2>&1