Überwache deine Internetgeschwindigkeit mit dem Speedtest-cli von ookla
Die Firma Ookla hat am Oktober 2019 ihr eigenes speedtest-cli
vorgestellt mit diesem Blog-Artikel: https://www.speedtest.net/insights/blog/introducing-speedtest-cli/. Ookla betreib die bekannte speedtest.net Webseite.
Nach meinen Erfahrungen mit anderen speedtest-cli
Programmen, ist die Version von ookla sehr zuverlässig und dazu noch ressourcenschonend was die CPU anbelangt. Die Auswahl von Speedtest-Server ist jedoch eher klein und es werden nur Testserver im näheren Umkreis angezeigt.
speedtest-cli
kann man gut für die automatisierte Überwachung der Internetgeschwindigkeit einsetzen. Um speedtest-cli
mehrmals täglich auszuführen, kann ein cronjob eingerichtet werden. Das Ergebnis wird dann in eine .csv
-Datei geschrieben.
Speedtest cli von Ookla installieren
Hier findest du eine Anleitung zur Installation vom speedtest-cli von ookla: https://www.speedtest.net/de/apps/cli
Erster Durchlauf mit Kopfzeile für .csv-Datei
Um die Kopfzeile für die .csv
-Datei zu erzeugen, gibt es die Option --output-header
für das speetest-cli
:
Die Kopfeile und der erste Speedtest wurden nun in die Datei /var/tmp/speedtests.csv
geschrieben. Für die spätere Verwendung mit Cronjob, fehlt jedoch noch ein Zeitstempel in der ersten Spalte. Somit sollte der erste Speedtest aus der Datei gelöscht und die Kopfzeile wie folgt angepasst werden:
Am Anfang der Kopfzeile wurde ein zusätzliche Spalte "date time",
eingefügt.
Cronjob einrichten
crontab -e
<– Editiert die crontab Datei des aktuellen Benutzers
Cronjob einrichten und Datei speichern:
Mit diesem Befehl wird noch ein Zeitstempel im ersten Feld eingefügt und die ganze Zeile, samt Speedtest-Daten, in die Datei /var/tmp/speedtests.csv
gespeichert. Der cronjob läuft alle 3 Stunden in der 22. Minute (Beispiel: 00:22:00
Uhr, nächster Lauf wäre dann um 03:22:00
Uhr). Die Ausführungszeiten könnt ihr nach eurem belieben anpassen, siehe dazu: https://crontab.guru/
Nach einiger Zeit sieht dann die speedtests.csv
-Datei ungefähr so aus:
Diagramm erstellen
Um die Daten in einem Diagramm dazustellen habe ich gnuplot
(http://www.gnuplot.info/) verwendet. Ihr müsst wahrscheinlich gnuplot
erst installieren, falls ihr es verwenden möchtet.
Damit gnuplot
im Terminal etwas ausgibt, muss dieses auf dumb
eingestellt werden.
set terminal dumb ansirgb feed enhanced size 120, 30 aspect 1;
gnuplot
kann am einfachsten mit einer Konfigurationsdatei genutzt werden. Die Konfigurationsdatei gnuplot_speedtest_data
sieht in meinem Beispiel so aus:
Dies zeichnet ein simples, ascii-basiertes Diagramm da ich direkt auf einem Server die Plots erstelle und kein X11 zu Verfügung habe. Es werden die letzten 48 Stunden angezeigt mit set xrange [time(0)-22460*60:]
. Plot erstellen in Bash:
Dies erzeugt folgendes Diagramm in Bash:
Es gibt viele verschiedene gnuplot
terminals, unter anderem mit Unterstützung für LaTeX und natürlich das .pdf
-Format. Für eine .pdf
-Version des obigen Diagramms, müsst ihr diese Zeile => set terminal dumb ansirgb feed enhanced size 128, 31 aspect 1;
in der gnuplot_speedtest_data
mit folgenden zwei ersetzen:
Gnuplot nochmals ausführen, dies erzeugt das speedtest_diagramm.pdf
im aktuellen Ordner:
Resultierendes speedtest_diagramm.pdf
(als Bild):
Gnuplot Terminal FAQ: How do I print out my graphs?
Mehr zu speedtest-cli
Ein interessanter und detaillierter Artikel (in Englisch) über speedtest-cli findest du hier: https://www.putorius.net/speed-test-command-line.html