python - 使用crontab执行py脚本出错

查看:182
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆