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

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

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

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

Python代码 收藏代码
*/5 * * * * /usr/local/bin/python2.7 /home/work/user/main.py > /yyy.log 2>&1
程序中涉及文件路径,相对路径改为绝对路径,如:

Python代码
file = ‘conf’
改为:
file = ‘/home/work/user/conf’
二、环境变量问题

预安装python版本可能非实际使用版本,可使用绝对路径解决(如一)
如果需要生效你的bash信息,可以在前面加上“source ~/.bashrc &&”,如:

Java代码 收藏代码
*/5 * * * * source ~/.bashrc && /usr/local/bin/python2.7 /home/work/user/main.py > /yyy.log 2>&1
三、文件可执行权限
设置python文件的可执行权限,
Bash代码 收藏代码
chmod +x main.py
四、crontab命令不可使用函数

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

Python代码 收藏代码
*/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任务不执行都可通过以上几点来逐步排查,如有疏漏,后续补充~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值