Linux und Ich

Blog über Ubuntu, Linux, Android und IT

speedtest-cli

Speedtest.net mit speedtest-cli im Terminal ohne Browser ausführen

| 3 Kommentare

Viele von euch werden wahrscheinlich schon einmal Speedtest.net im Browser genutzt haben. So lässt sich sehr einfach prüfen, ob der Internetanbieter auch wirklich die versprochene Geschwindigkeit über die Datenleitung bringt, oder ob das Internet nur langsam in den Rechner tröpfelt. Neben der Browser-Variante des Dienstes, gibt es das Ganze auch schon eine ganze Weile als App fürs Handy. “Normale” PCs und Handys sind so gut abgedeckt, aber wenn man die Anbindung eines kleinen Servers oder eines Raspberry Pis ohne eine graphische Oberfläche testen möchte, muss man zu anderen Mitteln greifen… oder man fährt Speedtest.net per Skript.

Als Kommandozeilentool braucht speedtest-cli keine graphische Umgebung, das Skript lässt sich auch auf einfachen Systemen wie eben dem Raspberry Pi mit etwa Raspbian ausführen. speedtest-cli muss auch nicht zwingend installiert werden, das Skript kann man direkt von Github laden und ausführen. Arch-Linux-User finden speedtest-cli jedoch auch im AUR, so dass sich das Skript ohne weiteren Umstand auf den Rechner laden lässt

$ wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
$ chmod +x speedtest-cli
$ ./speedtest-cli

Wer speedtest-cli öfters braucht, der schiebt das Skript nach ~/bin oder mit Root-Rechten nach /usr/local/bin, so dass es im $PATH steht und von jedem Verzeichnis aus aufrufbar ist — bei der Installation unter Arch landet das Skript sowieso ordentlich im Dateisystem, so dass man sich darum keine Gedanken machen muss.

Mit Speedtest.net lässt sich die Leistung der eigenen Internetverbindung testen.

speedtest-cli führt den Leistungstest von speedtest.net auch ohne einen Browser aus.

speedtest-cli kennt neben dem einfachen Aufruf ohne Optionen auch noch eine Reihe von Schaltern. So lässt sich mit etwa mit speedtest-cli –share der Pfad zur Imagedatei mit den Ergebnissen des Leitungstests ausgeben. Oder man ruft mit  speedtest-cli –list die Liste der Speedtest-Server ab, so dass man mit  speedtest-cli –server SERVER einen Testserver gezielt anwählen kann.

$ speedtest-cli --help
usage: speedtest-cli [-h] [--share] [--simple] [--list] [--server SERVER]

Command line interface for testing internet bandwidth using speedtest.net.
--------------------------------------------------------------------------
https://github.com/sivel/speedtest-cli

optional arguments:
-h, --help show this help message and exit
--share Generate and provide a URL to the speedtest.net share
results image
--simple Suppress verbose output, only show basic information
--list Display a list of speedtest.net servers sorted by distance
--server SERVER Specify a server ID to test against

Insgesamt funktioniert speedtest-cli ähnlich gut wie Speedtest.net, allerdings beobachten einige User doch recht schwankende Ergebnisse des Kommandozeilentools. Auch bei mir spuckte speedtest-cli öfters mal Werte aus, die eigentlich nicht sein konnten. Kommen einem die Werte komisch vor, dann sollte man also lieber noch einmal den Test wiederholen, nicht dass man umsonst die Verkabelung nochmal neu macht,

speedtest-cli führt den Leistungstest von speedtest.net auch ohne einen Browser aus.

Autor: Christoph Langner

Hallo, ich bin Christoph -- Linux-User, Blogger und pragmatischer Fan freier Software. Wie Ihr ohne Zweifel bemerkt haben solltet schreibe ich hier über Linux im Allgemeinen, Ubuntu im Speziellen, sowie Android und andere Internet-Themen. Wenn du Freude an meinen Artikel gefunden haben solltest, dann kannst du mir über Facebook, Google+ oder Twitter oder natürlich dem Blog folgen.

3 Kommentare

  1. Danke für den Tipp! Nach so etwas habe ich gesucht.
    Bei mir waren die Ergebnisse zu Beginn auch ziemlich krass. Teils 300 MBit/s

    Nach ~ dem 8. Test hat sich die Transferrate auf realistische 50 MBit/s eingependelt.

    LG Thomas

  2. Hallo Christoph

    Ich möchte mit folgendem Aufruf per cronjob eine längerfristige Logdatei erzeugen:
    date && speedtest-cli –server 1746 >> speedtest.log

    In der Logdatei soll dann nur folgendes stehen:

    Do 7. Mai 06:10:01 CEST 2015
    Download: 29.12 Mbit/s
    Do 7. Mai 06:25:01 CEST 2015
    Download: 25.82 Mbit/s

    oder noch besser:

    Do 7. Mai 06:10:01 CEST 2015 Download: 29.12 Mbit/s
    Do 7. Mai 06:25:01 CEST 2015 Download: 25.82 Mbit/s

    u.s.w.

    Daraus möchte ich dann per Excel eine Kurve machen.
    Ich habe leider von Scriptsprachen keine Ahnung.
    Was muss ich in der speedtest-cli ändern, dass es funktioniert?

    Grüße

    Alois

    • Das wollte ich auch schonmal automatisieren. Schau mal mit speedtest-cli in die Hilfe. Mit der Option --simple bekommst du eine Ausgabe, die sich etwas leichter weitervearbeiten lässt.

      $ speedtest-cli --simple
      Ping: 2.942 ms
      Download: 90.01 Mbit/s
      Upload: 45.55 Mbit/s

      Bevor du dir aber die Mühe machst, das alles selber zu Skripten, schau lieber mal bei Github vorbei. Dort bin ich auf speedtest-linux gestoßen, das einen Wrapper um speedtest-cli baut. In der Standardeinstellung schreibt speedtest das Log nach ~/var/log/net/speedtest.log, das lässt sich bei Bedarf aber auch anpassen

      $ wget https://raw.githubusercontent.com/rsvp/speedtest-linux/master/speedtest
      $ chmod +x speedtest
      $ ./speedtest --log
      $ cat ~/var/log/net/speedtest.log
      2015-05-07, 17:32, 2.636, 89.78, 54.29
      2015-05-07, 17:34, 2.914, 89.05, 51.38

      Das Ergebnis lässt sich dann schön weiterverarbeiten.

      Grüße
      Christoph

Hinterlasse eine Antwort

Auf Linux und Ich darf anonym kommentiert werden. Die Felder für Name und E-Mail-Adresse dürfen beim Eintragen eures Kommentars leer bleiben. Ich freue mich aber über jeden Kommentar, zu dem der Autor mit seinem Namen steht.