碰到一个比较奇葩的问题,在crontab里面执行python脚本,怎么着都不执行,查看cron的log,提示已经执行了,但是任务就是不执行,而且命令手工执行是没有问题的。
0 1 * * * source /home/***/.bash_profile && /home/***/bin/python /home/***/ppp.py
终于找到原因了。。。
加了个输出后排查一下
0 1 * * * source /home/***/.bash_profile && /home/***/bin/python /home/***/ppp.py >>/home/***/ppp.out 2>&1
查看check.out的输出提示找不到引用的模块
原理是我的python脚本在一个文件夹里面,这个python文件有对外部文件夹的引用,虽然python文件里面加了sys.path.append('../../'),但是并没有在路径下去执行,所以在执行python的时候需要先切换到.py文件所在的目录,后面就能执行成功。