【转载】python脚本在crontab中执行的几个坑


转载地址: http://flyer0126.iteye.com/blog/2388142

一、绝对路径问题

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 777 main.py 

四、crontab命令不可使用函数

本来想实现日志的切分,使用$(date -d “today” +"%Y%m%d_%H%M%S").log 来实现,发现配置后不执行,改为固定文件即可解决。
!!!重点:crontab命令一定不能使用函数。

*/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
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值