一旦您完成了基本设置,您就可以自动监控您的宽带连接,因此只要您愿意,它就会持续多久。
一个 CSV 文件(逗号分隔值)会生成到 Google Drive 中,并且每小时更新一次。 CSV 是一种非常简单的文件格式,可以在 Microsoft Excel 中打开或导入到 Google 表格中。听起来很方便?本文假设您在 Pi 上安装了 Raspbian。
使用树莓派监控宽带速度
第 1 步:检查更新
一如既往,首先检查最新的更新。在终端中运行以下命令:
sudo apt-get update sudo apt-get upgrade
第 2 步:安装 speedtest-cli
有多种方法可以测量宽带连接速度。我们将使用 speedtest-cli,“一个使用 speedtest.net 检查互联网带宽的命令行界面”。
speedtest-cli 在 Raspbian 存储库中不可用,但您可以从 Python Package Index (PyPI) 安装它。使用预装在 Raspbian Jessie 和 Stretch 上的名为 pip 的工具可以轻松完成此操作。您可以通过运行以下命令来确保您有 pip:
sudo apt-get install python-pip
如果您收到消息“python-pip 是最新版本”,则表示它可以使用了。
接下来使用pip安装speedtest-cli:
sudo pip install speedtest-cli
现在安装了speedtest-cli,您可以使用以下命令轻松测量您的宽带速度:
speedtest-cli
但是,为了本文的目的,使用 speedtest-cli 的 Simple 模式会更方便:
speedtest-cli--simple
您应该会看到如下内容:
Ping:47.943 ms 下载:40.93 Mbit/s 上传:2.33 Mbit/s
但是,该输出不遵循 CSV 语法。因此,您需要解析数据并使其正确。
第 3 步:创建 Python 脚本
让我们创建一个新的 Python 文件:
sudo nano speedtest.py
这是您应该在文件中包含的内容(您当然可以复制并粘贴这些行):
import os import re import subprocess import time response= subprocess.Popen('speedtest-cli--simple', shell=True, stdout=subprocess.PIPE).stdout.read () ping= re.findall('Ping:s(.*?)s', response, re.MULTILINE) download= re.findall('Download:s(.*?)s', response, re.MULTILINE) upload= re.findall('Upload:s(.*?)s', response, re.MULTILINE) ping[0]= ping[0].replace(',', '.') download[0]= download [0].replace(',', '.') upload[0]= upload[0].replace(',', '.') try: if os.stat('/home/pi/speedtest/speedtest.csv').st_size== 0: 打印 'Date,Time,Ping (ms),Download (Mbit/s),Upload (Mbit/s)' 除了:pass print '{},{},{},{ },{}'.format(time.strftime('%m/%d/%y'), time.strftime('%H:%M'), ping[0], 下载[0], 上传[0] ])
(假设您将脚本保存在 /home/pi/-否则只需更改此处的路径:if os.stat ('/home/pi/speedtest/speedtest.csv ').st_size== 0:).
将行放在正确的位置后,您可以保存文件并按 Ctrl + X, Y 和 Enter 退出编辑器。
脚本在简单模式下运行speedtest-cli,解析输出并以CSV格式输出。您可以使用以下命令运行脚本:
python speedtest.py
如果你这样做了,你应该看到这样的一行:
10/26/17,10:18,47.943,40.93,2.33
第 4 步:创建目录
让我们为 CSV 文件创建一个目录:
mkdir speedtest
如果您想知道为什么需要一个文件夹来存放文件,那是因为您会将该文件夹与 Google 云端硬盘同步。同步后,文件夹内的所有内容都将对应于 Google Drive 文件夹的内容。
现在,如果您像这样运行 Python 脚本:
python speedtest.py >> speedtest/speedtest.csv
…您将在新文件夹中拥有一个包含宽带速度数据的 CSV 文件。
如果您检查文件的内容(例如 cat speedtest/speedtest.csv),您可以看到如下几行:
Date,Time,Ping (ms),Download (Mbit/s),Upload (Mbit/s) 10/26/17,10:18,47.943,40.93,2.33
第 5 步:将脚本与 Google Drive 集成
要将脚本与 Google Drive 集成,您可以使用用户 GitHub Petter Rasmussen 的 Google Drive CLI 客户端。下载它的树莓派Pi版本通过运行以下命令:
wget-O gdrive https://docs.google.com/uc?id=0B3X9GlR6EmbnVXNLanp4ZFRRbzg&export=download
接下来,让我们指定文件权限:
chmod +x gdrive
您需要通知 Google Drive 以允许 Google Drive CLI 客户端连接到该帐户。可以通过运行带有任何参数的 Google Drive CLI 客户端来实现。例如,此命令会列出您的 Google Drive 帐户的内容:
./gdrive list
您现在应该会看到如下所示的身份验证请求:
只需按照说明操作:访问浏览器中的 URL,登录您的 Google 帐户并允许 ' GDrive (...) 查看和管理您的 Google Drive 中的文件。 '(GDrive (...) 查看和管理您的 Google Drive 文件)。然后就可以输入验证码了。
最后,gdrive 会列出您的 Google 云端硬盘内容。
既然您在 Raspberry Pi 上拥有 speedtest 文件夹,请为 Google Drive 创建相应的目录:
./gdrive mkdir speedtest
程序返回新目录的 ID。复制它,因为你以后会用到它。
接下来,让我们同步两个speedtest文件夹:
./gdrive 同步上传速度测试 ID
只需将 ID 替换为 speedtest 目录 ID。
如果一切按预期进行,您现在应该会在 Google 云端硬盘中看到一个名为 speedtest 的文件夹。在目录中,有一个之前创建的文件(speedtest.csv):
现在,如果您再次运行 Python 脚本,新的宽带速度数据将添加到文件末尾:
python speedtest.py >> speedtest/speedtest.csv
如果您再次运行同步命令,您可以在 Google Drive 中看到更新后的文件:
./gdrive 同步上传速度测试 ID
(再次提醒,记得用speedtest目录的ID替换ID)。
您可以在 Google 云端硬盘中查看更新后的文件
第 6 步:自动化一切
剩下的就是让事情自动运行。为此,请使用 cron,它可以安排命令在特定时间运行,例如每小时一次。
让我们创建一个简短的 shell 脚本,其中包含每小时运行一次的命令:
sudo nano speedtest-cron.sh
添加以下熟悉的命令(假设您已经在/home/pi/目录中完成了所有操作——否则只需更改路径):
sudo python/home/pi/speedtest.py >>/home/pi/speedtest/speedtest.csv/home/pi/gdrive 同步上传速度测试ID
(并且,再次记住将 ID 替换为 speedtest 目录的 ID。)
然后使用 Ctrl + X, Y 和 Enter 保存并退出。
请指定执行脚本的权限:
sudo chmod +x speedtest-cron.sh
现在您已准备好测试脚本:
./speedtest-cron.sh
好的,让我们创建 cron 任务:
crontab-e
在编辑器中输入以下行,按Ctrl + X, Y, Enter 保存并退出:
0 * * * */home/pi/speedtest-cron.sh
现在可以使用宽带速度监控。速度测试的结果将每小时记录一次。您可以使用 Microsoft Excel 或 Google Sheets 在 Google Drive 中打开 CSV 文件。如果您更喜欢以下选项,则必须导入文件(文件>导入...)。
您可以使用 Microsoft Excel 或 Google Sheets 在 Google Drive 中打开 CSV 文件
评论