php技术博客

记录php相关学习知识及开发示例、疑难问题等

记一次crontab定时任务不执行问题分析与解决

之前用python+selenium写了一个抓取网页的脚本,直接执行脚本都是正常的,放到crontab下,利用任务计划来执行,但是没有正确执行到脚本内容。通过查看任务计划日志 /var/log/cron,发现对应时间点有执行脚本。这种情况只能是脚本执行过程中有异常情况中断了,然后记录 脚本执行的日志及错误日志。通过查看错误日志,提示“'chromedriver' executable needs to be in PATH.”。命令行下 whereis chromedriver,能找到对应命令。看来 crontab中环境变量 配置的值不一致造成的。通过网页搜索,定时任务执行时环境变量 加载 /etc/crontab里面 PATH 的值。

所以有两种方法解决

(1)、修改 /etc/crontab文件

文件末尾添加 source /etc/bashrc


(2)、修改任务计划脚本,添加对应环境变量配置

* * * * * source /etc/bashrc;/usr/bin/python3 /tmp/caiji.py

* * * * * export PATH="$PATH:/opt/google/chrome";/usr/bin/python3 /tmp/caiji.py