购买流程 付款方式 常见问题 在线提问  续租服务  购物车
首页 域名注册 虚拟主机 成品网站 企业邮局 服务器租用 VPS主机 云主机 智能建站 代理专区 客户中心
用户登陆
为何选择我们
  • 7年优质服务经验
  • 10万用户的共同选择
  • 更低的价格更好的服务
  • CNNIC四星级认证服务商
  • 拥有正规经营许可证(ICP)
  • 先进的解析技术10分钟生效
  • 6组DNS负载均衡更快更稳定
  虚拟主机域名注册-常见问题python开发 → python开发


[原创]centos下的crontab中python脚本不执行的解决过程
作者:

centos下的crontab中python脚本不执行.

然后我手工执行,却是正常的,这下奇怪了。

上网搜了一下,很多人说是命令的路径没有写对,但是我都写成:/usr/bin/python,说明不是这里的问题。

我再搜,有些说,第一行要指定执行的类型,后后我就把第一行改成:#!/usr/bin/python

结果还是不对。


到底是哪出了问题呢?

我查看了cron的执行日志。

内容如下:

#tail /var/log/cron

显示如下的记录信息:

May 14 21:20:01 localhost CROND[32237]: (root) CMD (/usr/bin/python /home/myservice/UpdateProDate/Index.py)

说明确实执到的。但是却没有达到预期的效果。


那是不是执了但没有执行成功呢,那就把运行的信息输入到一个日志文件里看看。

于是改成如下代码:

42 * * * *  /usr/bin/python /home/myservice/UpdateProDate/Index.py >> /home/logs/UpdateProDate.log2>&1


执行后,发现是python在报字符编码的错误。

于是我先把Index.py里的print("中文")改成print("english")

果然能顺利执行了。


但这不对啊,手工执行的时候,中文是可以的,那有可能是没有加载到环境就变量。


计划任务是用crontab -e来添加的,但并没有加载到root的环境变量,所以,改成如下的命令:


1
42 * * * * source ~/.bashrc && /usr/bin/python /home/myservice/UpdateProDate/Index.py >> /home/logs/UpdateProDate.log 2>&1

果然,能完美地执行,还可以记录执行的日志。

 



来源:
阅读:6195
日期:2014-05-14

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:last命令查看系统重启状态(人工手动重启的还是系统内用命令重启的系统)
下一篇:[转帖]辨别百度蜘蛛ip真伪的方法
  >> 相关文章
 
返回首页 |关于我们 | 联系我们 | 付款方式 | 广告联盟 | 有问必答
版权所有 西部数码代理,西数代理,vps_空间优惠,网站性能优化·严禁复制
在线客服: 点击发送消息给对方3528938
服务热线:18382390188 传真:028-86264041
信息反馈:业务咨询 技术问题 问题投诉 《中华人民共和国增值电信业务经营许可证》川B2-20030065号
友情链接:美美哒网