Internet-Speedtest auf der DS ausführen - Skript??

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.017
Punkte für Reaktionen
318
Punkte
189
Mein Gedanke war, dass ich Unregelmässigkeiten, die man nun auch auf Deinem Diagramm sehen kann, leichter erklären kann. Schwankungen gibt es immer, das ist klar, jedoch solche Picks sind m.E. nicht gewöhnlich. Wenn dann die Gegenstelle eine andere ist, ist die Analyse einfacher.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
jedoch solche Picks sind m.E. nicht gewöhnlich
Ich messe den Picks keine Bedeutung zu. In meinem Netzwerk befinden sich auch andere Geräte wie z.B. das NAS, Handys, Tablets, die alle jederzeit was downloaden können (z.B. Update der Apps). Wenn das zufällig zeitgleich passiert, gibt es halt die Picks.
In meinem Diagramm sieht man, dass die Leistung 50/10 zu fast allen Zeiten vorhanden ist. Es sind keine Einbrüche über einen längeren Zeitraum sichtbar, wie z.B. bei anderen Leuten, die zu den Abendstunden immer zu kleine Werte haben, weil da besonders viele Leute gleichzeitig online sind. Das ist hier definitiv nicht der Fall.

Wenn dann die Gegenstelle eine andere ist, ist die Analyse einfacher.
Wie gesagt, dann einfach eine Gegenstelle aussuchen (--list) und fest im Script (--server xxxx) festlegen. So hat man definitiv immer die gleiche Gegenstelle.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Ich habe das Script noch etwas geändert, damit man eine CSV-Datei herausbekommt und Excel sie sofort frisst.

Das Ergebnis sieht nun so aus:
Rich (BBCode):
12.08.2019-1137;55,78;11,65;17,198

Rich (BBCode):
#!/bin/bash

# Verzeichnis setzen
cd /das/Verzeichnis/deiner/Wahl

# Speedtest, ablegen in Variable
testlauf=$(speedtest-cli --simple)

# einzelne Werte in Variablen ablegen
ping=$(echo $testlauf | awk '{print $2}' | sed -e 's/\./,/g')
download=$(echo $testlauf | awk '{print $5}' | sed -e 's/\./,/g')
upload=$(echo $testlauf | awk '{print $8}' | sed -e 's/\./,/g')

# Ausgabe in eine Datei
echo `date +%d.%m.%Y-%H%M`";"$download";"$upload";"$ping >> daten.csv

# Ende
exit 0
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Ich bin ja dabei den Speedtest in AvrLogger einzubauen, gibt es irgendwo eine Dokumentation ob und welche Fehlermeldungen der Speedtest im Falle eines Falles ausgibt?

Ich würde die wichtigsten Fehler gerne abfangen / erkennen.

Ich kenne mich mit Python leider nicht aus und stehe da auf dem Schlauch, sonst würde ich mir die selber aus der „speedtest.py“ extrahieren.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Ich habe test weise die Domain (sl-03.wemaxxxx.xx) vom Anbieter im Pi-hole gesperrt und dann einen Speedtest durchgeführt.

Der bringt auch ganz brav ein Ergebnis:
Rich (BBCode):
root@raspberry/ $ speedtest-cli --server 21815
Retrieving speedtest.net configuration...
Testing from Deutsche Telekom AG (93.205.xxx.xxx)...
Retrieving speedtest.net server list...
Retrieving information for the selected server...
Hosted by WEMACOM Breitband GmbH (Schwerin) [71.64 km]: 1800000.0 ms
Testing download speed................................................................................
Download: 0.00 Mbit/s
Testing upload speed................................................................................................
Upload: 0.00 Mbit/s

Von Fehlermeldung keine Spur. ;)
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Versuch doch mal ob du mit gesperrter IP ein Timeout provozieren kannst mit:

Rich (BBCode):
--timeout 1
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Es macht einen Unterschied, ob ich die Domain im Pi-hole auf die Blacklist setze oder den Testrechner komplett das Internet im Router verbiete.

Im ersten Fall ist es wurscht, ob ich den Timeout auf 1 oder 20 Sekunden setze. Das läuft ruckzuck durch und bringt die falschen Werte.

Erst im zweiten Fall kommt ein schöner Error zum Vorschein:
Rich (BBCode):
root@raspberry / $ speedtest-cli --server 21815 --timeout 1
Retrieving speedtest.net configuration...
Cannot retrieve speedtest configuration
ERROR: <urlopen error [Errno -2] Name or service not known>
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Ok … mit deiner Fehlermeldung und mit Hilfe von Tante google :

Rich (BBCode):
HTTP Error 302:
ERROR: HTTP Error 404: Not Found
ERROR: <urlopen error [Errno -3] Temporary failure in name resolution>
ERROR: timed out
ERROR: 'speedtest-cli --share' failed (exit code 1).
ERROR: <urlopen error [Errno -2] Name or service not known>

ergibt sich aus meiner Sicht, das „wahrscheinlich“ alle Fehlermeldungen mit:
Rich (BBCode):
ERROR:
beginnen.

Die erste Fehlermeldung aus der Liste, da bin ich mir nicht sicher ob die noch aktuell ist und ob die wirklich vom Speedtest stammt.

Ach ja ... beim stöbern noch den Schalter:

Rich (BBCode):
--debug

gefunden :cool:.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Ich habe noch mal probiert dem Testrechner das Internet zu erlauben, damit er "speedtest.net" erreicht, gleichzeitig aber die Gegenstelle für den Test auf eine falsche IP umzubiegen, wo er ja keine Antwort bekommt.

Trotz timeout => 1 lag die Pause eher bei 10 Sekunden.

Ergebnis war das hier:
Rich (BBCode):
root@raspberry/ $ speedtest-cli --server 21815 --timeout 1
Retrieving speedtest.net configuration...
Testing from Deutsche Telekom AG (93.205.xxx.xxx)...
Retrieving speedtest.net server list...
Retrieving information for the selected server...   
[Wartezeit von ca. 10 Sekunden]
Hosted by WEMACOM Breitband GmbH (Schwerin) [71.64 km]: 1800000.0 ms
Testing download speed..............................................................................                         ..
Download: 0.00 Mbit/s
Testing upload speed................................................................................................
Upload: 0.00 Mbit/s


Der Debug-Schalter ist ja eine feiner Sache... :D
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Rich (BBCode):
Hosted by WEMACOM Breitband GmbH (Schwerin) [71.64 km]: 1800000.0 ms

Die 180 Sekunden finde ich ja spannend :cool:
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234

Loading--------

Benutzer
Mitglied seit
20. Mai 2018
Beiträge
145
Punkte für Reaktionen
1
Punkte
0
Junge dieses Forum... <3

Hatte nicht abonniert deswegen gar nicht gesehen dass das hier so explodiert ist :D Vielen Dank an alle insbesondere an @peterhoffmann für das elegante Skript, hätte ich so niemals hinbekommen, funzt mit ./speedtest-cli wunderbar. Hab in der Zwischenzeit selbst ein crontab geschrieben, Log sieht aber hässlich aus und hab's bis jetzt nicht hinbekommen wie man vor jedem Test einen Timestamp ins Log anhängt und nach jedem Test eine Leerzeile... Aber das Script mit Ausgabe als CSV ist eh besser.
Mein crontab:
#test minuetlich
* * * * * root /var/services/homes/Alex/speedtest-cli >> ~Alex/speedtestlog.log 2>&1

Das mit date +%d-%m-%y/%H:%M:%S >> filename will irgendwie nicht. /bin/date gibt auch nichts aus. Kann es sein dass es auf dem Syno (Debian?) Linux etwas anders ist? Und wie zur Hölle mache ich bei nem Cronjob am Ende der Aufgabe eine Leerzeile ins Log? ";echo -u" macht keinen Unterschied.
Nur mal zum Verständnis.
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.017
Punkte für Reaktionen
318
Punkte
189
Das von Dir gezeigte Format lief mal im DSM 5 so. Seit DSM 6 verwende ich deshalb

\%Y-\%m-\%d um \%H-\%M-\%S

vielleicht geht auch

\%Y-\%m-\%d um \%H:\%M:\%S

Das kannst Du nur testen. Wenn diese Formatierungen nicht stimmen oder laufen, bekommst Du auch keine Ergebnisse.
 

Loading--------

Benutzer
Mitglied seit
20. Mai 2018
Beiträge
145
Punkte für Reaktionen
1
Punkte
0
Hab's inzwischen rausbekommen wie mein Wunsch-Skript aussieht:

#!/bin/bash
echo "" >> ~Alex/speedtestlog.log 2>&1
date +%d-%m-%y/%H:%M:%S >> ~Alex/speedtestlog.log 2>&1
/var/services/homes/Alex/speedtest-cli >> ~Alex/speedtestlog.log 2>&1
exit 0

Das Ganze dann statt per SSH als root im crontab über den DSM-Aufgapenplaner (weil DSM sonst wegen "GEFAHR fremder crontab" meckert) und voila das logfile:

14-08-19/13:18:53
Retrieving speedtest.net configuration...
Testing from Unitymedia (109.***.***.***)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by bc-networks (Remseck) [77.31 km]: 27.305 ms
Testing download speed................................................................................
Download: 144.84 Mbit/s
Testing upload speed................................................................................................
Upload: 19.97 Mbit/s

14-08-19/13:23:40
Retrieving speedtest.net configuration...
Testing from Unitymedia (109.***.***.***)...
Retrieving speedtest.net server list...
Selecting best server based on ping...
Hosted by dasWLAN.de (Stuttgart) [73.76 km]: 24.102 ms
Testing download speed................................................................................
Download: 154.68 Mbit/s
Testing upload speed................................................................................................
Upload: 19.93 Mbit/s

...
Zwar nicht so elegant wie die CSV aber funktional und als Nachweis ggü. Provider hoffentlich ausreichend wenn der Speed mal wieder bei 10% ist. :D Ansonsten kann speedtest-cli sogar einen Link zum Ergebnis auf deren Seite ausgeben. Man könnte auch 3 schnelle Messungen hintereinander jeweils 3 mal am Tag machen lassen für mehr Aussagekraft.
 
Zuletzt bearbeitet:

Speedsurfer

Benutzer
Mitglied seit
25. Okt 2020
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Hallo, ich muss diesen Thread nochmal fortführen. Ich habe seit kurzem Glasfaseranschluss und immer wieder Einbrüche von allem bei den Download Raten. Damit ich umfassende Ergebnisse für die Reklamation bekomme, wollte ich das Speedtest-cli Skript aus der Synology laufen lassen. Habe dazu das Tool per wget installiert, Python ebenfalls und das Skript aus diesem Thema in den Aufgabenplaner eingebunden. Der Task wird auch ausgeführt. Es werden aktuell aber keine Verbindungsdaten und die csv eingetragen. Die Spalten sind leer:

25.10.2020-1600;;;
25.10.2020-1605;;;
25.10.2020-1610;;;
25.10.2020-1615;;;
25.10.2020-1620;;;
25.10.2020-1625;;;
25.10.2020-1630;;;
25.10.2020-1635;;;
25.10.2020-1640;;;
25.10.2020-1645;;;
25.10.2020-1650;;;
25.10.2020-1655;;;
25.10.2020-1700;;;

Das Skript im Aufgabenplaner sieht so aus:

#!/bin/bash

# Verzeichnis setzen
cd /Mein/Verzeichnis/mit/speedtest.py

# Speedtest, ablegen in Variable
testlauf=$(speedtest --simple)

# einzelne Werte in Variablen ablegen
ping=$(echo $testlauf | awk '{print $2}' | sed -e 's/\./,/g')
download=$(echo $testlauf | awk '{print $5}' | sed -e 's/\./,/g')
upload=$(echo $testlauf | awk '{print $8}' | sed -e 's/\./,/g')

# Ausgabe in eine Datei
echo `date +%d.%m.%Y-%H%M`";"$download";"$upload";"$ping >> daten.csv

# Ende
exit 0

Kann man das .py irgendwie einzeln ausführen, also direkt von der CLI? Ich hab es nicht hinbekommen.

Wäre dankbar für Tipps...
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Doppelte Anführungszeichen am Ende der Zeile (nach ping) nur beim Tippen hier vergessen, oder auch im Script?

python sppedtest.py
Oder
/usr/bin/python
Oder wo das auch immer (which python) liegt... Geht nicht?
 

Speedsurfer

Benutzer
Mitglied seit
25. Okt 2020
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Es läuft jetzt - aber ich hab mehr Einträge und weiß nicht welche das sind...:
Das " am Ende ist im Beispielskript so angegeben, muss das hin?

25.10.2020-1820;166,78;217,51;23,883
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Was hast du jetzt geändert?
Nein, eventuell nicht, wenn die für das Semicolon benutzt werden, dachte erst die dienen für die Kapselung der Variablen.

Wo hast du mehr Einträge?
Du hast halt Kommazahlen, Bsp 166,78 ist ja eine Zahl...
 

Speedsurfer

Benutzer
Mitglied seit
25. Okt 2020
Beiträge
7
Punkte für Reaktionen
0
Punkte
1
Naja, eigentlich werden nur Download, Upload und Ping geschrieben, aber ich hab da doppelte Werte...
 

Fusion

Benutzer
Sehr erfahren
Mitglied seit
06. Apr 2013
Beiträge
14.135
Punkte für Reaktionen
898
Punkte
424
Bitte konkret das Script / Befehlsaufruf und die Ausgabe dazu.
 


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat