python - 使用crontab执行py脚本出错
本文介绍了python - 使用crontab执行py脚本出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
最近使用centos6.8的crontab定时执行一个py脚本没有得到实际单独运行的效果
代码https://github.com/ansionfor/...
crontab -e 设置
脚本单独运行效果
crontab 日志有记录每分钟运行了py脚本
crontab处于启动状态
脚本的作用是保存某网站的文章到我自己远程mysql数据库中,但我测试了几天,发现没有一篇文章是通过这个定时器保存的,都是我自己手动运行脚本保存的文章
但是奇怪的是,我在crontab中放另外一个发送邮件的py脚本,却可以正常运行
代码https://github.com/ansionfor/...
解决方案
1.如果题主在xxx.py上加入了#!/usr/local/bin/python2.7这一句的话,那么你的crontab定时任务定义只需要:
0 0 * * * /x/xxx.py
因为脚本第一行指定解释程序后已经是可执行性脚本(文件)了,就不再需要python2.7执行命令了。
2.如果不写第一行指定环境变量,我一般这样写,因为我的环境里有多个版本
0 0 * * * /usr/local/bin/python2.7 /x/xxx.py
来指定python执行的路径,建议你这样写
3.为什么crontab需要指定python路径呢?
官方文档解释是这样:
环境变量已经自动设置好了的,如当前的SHELL,SHELL=/bin/bash,这个crontab所有者的HOME目录是从/etc/passwd文件中读取的。除了默认的环境变量外,其他环境变量就需要用户自己设置了,为了找到python2.7,就要设置PATH=/user/local/bin
4.关于调试
一般cron不执行会发报错邮件,通常默认在 /var/mail 下面
这篇关于python - 使用crontab执行py脚本出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文