从 cron 运行时,Python speedtest.py 无法连接到 Internet

问题描述

我有以下代码

#!/usr/bin/python3.8

import subprocess
import requests
import datetime
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

print("=============================================================");
Now = datetime.datetime.Now()
print(Now);

# speedtest --single --json
speedout = subprocess.run(['speedtest','--single','--json'],stdout=subprocess.PIPE).stdout.decode('utf-8');
print("speedtest output:"+speedout);

Now = datetime.datetime.Now()
print(Now);
print("=============================================================");

当我手动运行它时,它会生成以下日志

=============================================================
2021-04-26 12:23:14.869085
speedtest output:{"download": 48332978.441761896,"upload": 21216098.81470209,"ping": 43.796,"server": {"url": "http://hotcaldas.lampinc.com.br:8080/speedtest/upload.PHP","lat": "-17.7450","lon": "-48.6250","name": "Caldas Novas","country": "Brazil","cc": "BR","sponsor": "Hot Caldas Internet","id": "40200","host": "hotcaldas.lampinc.com.br:8080","d": 230.63111881620188,"latency": 43.796},"timestamp": "2021-04-26T15:23:15.343030Z","bytes_sent": 26738688,"bytes_received": 60631816,"share": null,"client": {"ip": "179.xxx.xxx.14","lat": "-1xxx","lon": "-4xxx","isp": "Vivo","isprating": "3.7","rating": "0","ispdlavg": "0","ispulavg": "0","loggedin": "0","country": "BR"}}
2021-04-26 12:23:39.011183
=============================================================

但是当我将它放在 crontab 上(在我的帐户下)每小时运行一次时:

0 * * * *         /myscripts/monitors/speedtest.py >> /mylogs/speedtest.log 2>&1

生成以下日志

ERROR: Unable to connect to servers to test latency.
=============================================================
2021-04-26 13:00:01.687964
speedtest output:
2021-04-26 13:00:13.539705
=============================================================

注意错误消息是如何在第一个 ========

之前发生的

会发生什么?

更新。我为所有打印添加了 flush=True 。它工作过一次,但再次失败。现在错误信息改变了

=============================================================
2021-04-26 16:00:01.943727
ERROR: Unable to connect to servers to test latency.
speedtest output:
2021-04-26 16:00:03.616226
=============================================================

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...