linux定时任务执行python爬虫不运行了?

修复阿里云服务器漏洞升级python程序导致的。
python程序用是3写的,linux自带的是2.7.5。升级后定时任务运行正常。代码如下:
crontab -l查看定时任务:

# 每天上午6点10分定时抓取价格信息,抓取猪、牛
10  6  *  *  *  /opt/sh/pork_worm.sh
#50 11  *  *  *  python3  /opt/price_worms/pork_worm_daily.py

其中pork_worm.sh只为一个shell脚本运行python指令。(想让定时任务直接运行python脚本的,一直没成功,问题为不运行不报错,没找到原因) pork_worm.sh内容如下:

#!/bin/bash
python  /opt/price_worms/pork_worm_daily.py

/usr/local/bin/ python 升级后定时任务不运行了。

在命令行直接运行 sh /opt/sh/pork_worm.sh 是可以运行的。 后来用python 直接运行 /opt/price_worms/pork_worm_daily.py 报错,

[root@cciikaifa ~]# python /opt/price_worms/pork_worm_daily.py
Traceback (most recent call last):
  File "/opt/price_worms/pork_worm_daily.py", line 3, in 
    from bs4 import BeautifulSoup
ImportError: No module named bs4

啥找不到module呢,根本原因是python2 不兼容这个版本的bs4.
直接用python3 运行:

 python3 /opt/price_worms/pork_worm_daily.py
 开始爬取数据2019-08-16 15:13:40

运行正常。

定时任务试了几次还是不运行。

后来在shell启动脚本文件里加入python3的根路径才运行正常。

输入指令: whereis python3
python3: /usr/local/bin/python3.6 
/usr/local/bin/python3.6m 
/usr/local/bin/python3.6m-config 
/usr/local/bin/python3 
/usr/local/bin/python3.6-config 
/usr/local/lib/python3.6

然后所有sh脚本运行python的改成如下:

#!/bin/bash
/usr/local/bin/python3  /opt/price_worms/pork_worm_daily.py

然后运行正常了!

转载于:https://my.oschina.net/u/2301293/blog/3093518

你可能感兴趣的:(爬虫,python,操作系统)