生活哲学

如何使用树莓派监控宽带速度

一旦您完成了基本设置,您就可以自动监控您的宽带连接,因此只要您愿意,它就会持续多久。

一个 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, YEnter 退出编辑器。

脚本在简单模式下运行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

您现在应该会看到如下所示的身份验证请求:

如何使用树莓派监控宽带速度的图片1

只需按照说明操作:访问浏览器中的 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):

如何使用树莓派监控宽带速度的图片2

现在,如果您再次运行 Python 脚本,新的宽带速度数据将添加到文件末尾:

python speedtest.py >> speedtest/speedtest.csv

如果您再次运行同步命令,您可以在 Google Drive 中看到更新后的文件:

./gdrive 同步上传速度测试 ID

(再次提醒,记得用speedtest目录的ID替换ID)。

如何使用树莓派监控宽带速度的图片3 您可以在 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, YEnter 保存并退出。

请指定执行脚本的权限:

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 文件。如果您更喜欢以下选项,则必须导入文件(文件>导入...)。

如何使用树莓派监控宽带速度的图片4

您可以使用 Microsoft Excel 或 Google Sheets 在 Google Drive 中打开 CSV 文件

相关资讯

评论

回复