crontab不执行的坑

在部署一个自动更新的命令,但是crontab一直不执行。刚刚开始以为是权限的问题,后来发现不是这个,是因为路径的问题。总结一下crontab中容易出现的问题

  • crontab执行的脚本需要是决定路径

  • crontab中执行的shell,需要主动cd到shell脚本的目录下,比如:(cd $(dirname $0)

  • crontab执行脚本的权限问题

  • 脚本的环境变量问题

1
2
# 加载环境变量
source /etc/profile

在排查crontab问题的时候,可以采用打印日志的方式,比如

1
* * * * * /home/web/Blog/auto.sh &> /tmp/cron.log