python 脚本cron不执行

本文解决了一个关于Cron任务执行Python脚本时遇到的版本冲突问题。具体表现为,在CentOS5.9环境下,Cron任务无法正确调用Python2.7版本执行脚本,而手动执行则无此问题。通过调整系统默认Python版本为2.7解决了该问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写的一个备份脚本,总共7台机器,有2台就是不执行。手动可以。cron就是不行。环境都一样。


后来在邮件中发现相关问题,如下:

1
2
3
4
5
6
7
8
9
10
Traceback (most recent call last):
  File "/bin/auto_bak.py", line 76in <module>
    create_tarfile(tar_dir + "/" + dirname, filename, file_list)
  File "/bin/auto_bak.py", line 52in create_tarfile
    bak_tar = tarfile.open(tar_name + filename, "w:bz2")
  File "/usr/local/python2.7/lib/python2.7/tarfile.py", line 1678in open
    return func(name, filemode, fileobj, **kwargs)
  File "/usr/local/python2.7/lib/python2.7/tarfile.py", line 1746in bz2open
    raise CompressionError("bz2 module is not available")
tarfile.CompressionError: bz2 module is not available

感觉很奇怪!这个模块是安装了,手动可以执行的。

服务器环境是 CentOS 5.9, 里面还有 python 2.4。 看样子还是cron执行时可能用的2.4版本?

尝试:

1
2
unlink /usr/bin/python
ln -s /usr/local/bin/python2.7 /usr/bin/python

再次 cron。 居然搞定!


这个链接我安装2.7时就已经做了。不过是

1
ln -s /usr/bin/python2.7 /usr/bin/python

查了一下

1
2
file /usr/bin/python2.7
/usr/bin/python2.7: symbolic link to `/usr/local/python2.7/bin/python'

难道是因为这个也是链接?

其它机器也这样折腾的,目前不是太明白。先记下了!




本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1727194,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值