我们通常会在linux中用crontab 配置定时任务,但最近遇到一个奇怪的问题就是,手动执行脚本可以正常执行,但通过crontab配置执行后就一直失败。看后台执行日志确实也执行了但脚本就是没执行成功。接下来就通过下边的操作一步一步的定位问题
1.把脚本执行的日志打印出来
python3 getBasicData.py > /home/stockplatform/python-task/logs/info.log 2>&1 &
之前只知道执行失败了,确定不了到底是什么原因导致的失败,通过把日志打印出来就能协助我们快速的定位问题
通过报错可以看到在执行python脚本的时候会调用js代码的时候出错了,但node环境是有的,手动执行是可以的,通过crontab执行就异常了,这样的话我们就需要配置一下crontab的环境变量了
2.配置crontab环境变量
crontab -e
SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin