`

python脚本在crontab中执行的几个坑

阅读更多

PS:原创文章,如需转载,请注明出处,谢谢!     

本文地址:http://flyer0126.iteye.com/blog/2388142

 

    工作中遇到的小问题,随手记录一下。最近写了一个数据同步python任务脚本,手动执行正常,但配到crontab中无法运行,折腾半天终于搞好了,大笑

 

    一、绝对路径问题

    crontab中python命令使用绝对路径,如:

*/5 * * * * /usr/local/bin/python2.7 /home/work/user/main.py > /yyy.log 2>&1  

    程序中涉及文件路径,相对路径改为绝对路径,如:

file = 'conf'
改为:
file = '/home/work/user/conf'

     二、环境变量问题

    预安装python版本可能非实际使用版本,可使用绝对路径解决(如一)

    如果需要生效你的bash信息,可以在前面加上“source ~/.bashrc &&”,如:

*/5 * * * * source ~/.bashrc && /usr/local/bin/python2.7 /home/work/user/main.py > /yyy.log 2>&1 

    三、文件可执行权限 

    设置python文件的可执行权限,

chmod +x main.py

    四、crontab命令不可使用函数

    本来想实现日志的切分,使用$(date -d "today" +"%Y%m%d_%H%M%S").log 来实现,发现配置后不执行,改为固定文件即可解决。注:也是本次折腾耗时最长的问题点。

*/5 * * * * /usr/local/bin/python2.7 /home/work/user/main.py > /log/$(date -d "today" +"%Y%m%d_%H%M%S").log 2>&1
改为:
*/5 * * * * /usr/local/bin/python2.7 /home/work/user/main.py > /log/cron.log 2>&1

     

    大部分crontab任务不执行都可通过以上几点来逐步排查,如有疏漏,后续补充~

 

0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics