crontab

crontab命令

cron 测试效果


运行不了 source /etc/profile

  • 编辑$HOME目录下的. profile文件,在其中加入这样一行:

    EDITOR=vi; export EDITOR source .profile

  • crontab -l使用-l参数列出crontab文件

可以使用这种方法在$HOME目录中对crontab文件做一备份: $ crontab -l > $HOME/mycron 这样,一旦不小心误删了crontab文件,可以用上一节所讲述的方法迅速恢复。

  • 编辑crontab文件 crontab -e 如果希望添加、删除或编辑crontab文件中的条目,而EDITOR环境变量又设置为vi,那么就可以用vi来编辑crontab文件

  • 删除crontab文件 crontab -r

  • 格式

星期 cmd
1~59 1~23 (0表示子夜) 1~31 1~12 0~6(0表示周日)  
1
2
3
4
5
6
7
8
9
10
11
12
 - 在上午8点到11点的第3和第15分钟执行

    3,15 8-11 * * * myCommand


 - 每隔两天的上午8点到11点的第3和第15分钟执行

    3,15 8-11 */2  *  * myCommand

 - 每1分钟执行一次myCommand

    * * * * * myCommand
  • 注意清理系统用户的邮件日志

每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要。 例如,可以在crontab文件中设置如下形式,忽略日志输出:

1
0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1
  • 新创建的cron job,不会马上执行,至少要过2分钟才执行。如果

重启cron则马上执行。 新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。

当crontab失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。

千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。

在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’

更新系统时间时区后需要重启cron,在ubuntu中服务名为cron:

1
2
3
4
5
6
    $service cron restart
    ubuntu下启动、停止与重启cron:

    $sudo /etc/init.d/cron start
    $sudo /etc/init.d/cron stop
    $sudo /etc/init.d/cron restart