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

Loading--------

Benutzer
Mitglied seit
20. Mai 2018
Beiträge
145
Punkte für Reaktionen
1
Punkte
0
Bin mit der Anfrage bei Linux-Spezialisten wohl am besten aufgehoben ;)

Suche ein Skript, welches "alle x Stunden" einen Speedtest wie speedtest.com auf der Synology ausführt und das Ergebnis in eine Textdatei o.Ä. schreibt.
Muss allerdings auf einer DS 218j laufen, die kann kein Docker und keine VMs... Ideen/Erfahrungen? Danke schonmal.
 

Adama

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
05. Mrz 2013
Beiträge
1.948
Punkte für Reaktionen
556
Punkte
134
Moin,

Du kannst dieses z.B. nutzen:
https://github.com/sivel/speedtest-cli

Das greift auf die Struktur von Speedtest.net zurück.

Läuft auf der Syno problemlos. Nutzt python zum Betrieb.
 

Loading--------

Benutzer
Mitglied seit
20. Mai 2018
Beiträge
145
Punkte für Reaktionen
1
Punkte
0
Danke, blöde Frage aber wie kann ich die DS diesen Befehl automatisch ausführen lassen alle paar Stunden? Python Paket installieren und dann?
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.019
Punkte für Reaktionen
319
Punkte
189
Es gibt das Speedtest CLI als Script, das legst Du einfach ab im Webordner und machst im crontab entsprechende Einträge. Z.B. wie folgt:

5 * * * * root /bin/date "+-------------------- \%Y-\%m-\%d um \%H-\%M-\%S Uhr --------------------" >> /volume1/xxxx/yyyy/speedtest-cli_messung__$(/bin/date +\%Y-\%m-\%d).txt 2>&1
6 * * * * root /volume1/web/speedtest/speedtest-cli --bytes --share >> /volume1/xxxx/yyyy/speedtest-cli_messung__$(/bin/date +\%Y-\%m-\%d).txt 2>&1

Die beiden Zeilen könnte ich auch mit einem && verbinden, z.B. zu

5 * * * * root /bin/date "+-------------------- \%Y-\%m-\%d um \%H-\%M-\%S Uhr --------------------" >> /volume1/xxxx/yyyy/speedtest-cli_messung__$(/bin/date +\%Y-\%m-\%d).txt 2>&1 && /volume1/web/speedtest/speedtest-cli --bytes --share >> /volume1/xxxx/yyyy/speedtest-cli_messung__$(/bin/date +\%Y-\%m-\%d).txt 2>&1
 

Loading--------

Benutzer
Mitglied seit
20. Mai 2018
Beiträge
145
Punkte für Reaktionen
1
Punkte
0
Ah ok, hab von Linux keine Ahnung - werde mich dann mal in cron einlesen wie das funzt... muss ich dann mit PUTTY als root auf die Syno drauf oder kann ich das Skript einfach in einem Ordner ablegen und das führt die DS dann aus?
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.019
Punkte für Reaktionen
319
Punkte
189
Meine Beispiele sind mit einer älteren Version gemacht, das musst Du anpassen.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Erst mal danke für den Tipp bezüglich vom Script.

Ich habe das auf die Schnelle nicht auf der DS, sondern auf einem Raspberry installiert. Klappt wunderbar.

Ergebnis nach dem Start:
Rich (BBCode):
root@raspberry / $ speedtest-cli
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Deutsche Telekom AG (93.205.144.xxx)...
Selecting best server based on latency...
Hosted by Vereinigte Stadtwerke Media GmbH (Bad Oldesloe) [119.26 km]: 14.724 ms
Testing download speed........................................
Download: 57.11 Mbits/s
Testing upload speed..................................................
Upload: 11.45 Mbits/s

Simple:
Rich (BBCode):
root@raspberry / $ speedtest-cli --simple
Ping: 12.118 ms
Download: 57.86 Mbits/s
Upload: 11.48 Mbits/s

Zu guter Letzt habe ich mal testweise den Server ausgewählt, der am weitesten von mir weg ist (18227km):
Rich (BBCode):
root@raspberry / $ speedtest-cli --server 5482
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Deutsche Telekom AG (93.205.144.xxx)...
Hosted by WIC NZ Ltd (Dunedin) [18227.92 km]: 451.095 ms
Testing download speed........................................
Download: 18.37 Mbits/s
Testing upload speed..................................................
Upload: 5.22 Mbits/s
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Ich habe ein kleines Script verfasst, welches den Speedtest startet und die Werte in eine Datei ablegt.

So kann man das Script durch einen Cronjob (oder Aufgabenplaner der DS) regelmäßig aufrufen lassen und hat am Ende eine Übersicht über die Geschwindigkeiten.

Voraussetzung für das Script: speedtest-cli muss installiert sein

Rich (BBCode):
#!/bin/bash

# Verzeichnis setzen
cd /dein/Verzeichnis/für/das/Script

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

# einzelne Werte in Variablen ablegen
ping=$(echo $testlauf | awk '{print $2}')
download=$(echo $testlauf | awk '{print $5}')
upload=$(echo $testlauf | awk '{print $8}')

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

# Ende
exit 0
Es muss im Script nur das Verzeichnis angepasst werden. Verbesserungen vom Script sind gerne gesehen.
 
Zuletzt bearbeitet:

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.019
Punkte für Reaktionen
319
Punkte
189

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Ich habe mein Script nun stündlich aufrufen lassen.

Hier das Ergebnis der letzten 30 Stunden:
Rich (BBCode):
20190808-1220 55.88 | 11.37 | 20.056
20190808-1320 58.33 | 11.54 | 19.939
20190808-1420 57.55 | 11.68 | 17.017
20190808-1520 57.63 | 11.74 | 20.235
20190808-1620 57.72 | 11.87 | 20.074
20190808-1720 56.91 | 11.67 | 17.396
20190808-1820 56.40 | 11.65 | 18.145
20190808-1920 57.46 | 11.60 | 24.175
20190808-2020 57.95 | 11.65 | 22.392
20190808-2120 57.61 | 11.87 | 18.143
20190808-2220 57.43 | 11.58 | 18.072
20190808-2320 57.94 | 11.83 | 22.532
20190809-0020 56.82 | 11.89 | 18.011
20190809-0120 57.73 | 11.71 | 19.354
20190809-0220 58.10 | 11.79 | 17.988
20190809-0320 55.76 | 11.72 | 17.978
20190809-0420 57.30 | 11.81 | 18.034
20190809-0520 57.84 | 11.79 | 19.233
20190809-0620 52.26 | 11.72 | 23.998
20190809-0720 58.10 | 11.67 | 24.008
20190809-0820 57.16 | 11.74 | 19.395
20190809-0920 58.00 |  3.91 | 22.258
20190809-1020 57.31 | 11.81 | 19.89
20190809-1120 57.65 | 11.86 | 21.104
20190809-1220 56.58 | 11.88 | 19.851
20190809-1320 56.51 | 11.68 | 19.353
20190809-1420 57.38 | 11.74 | 20.731
20190809-1520 45.71 | 11.78 | 22.156
20190809-1620 56.67 | 11.63 | 25.211
20190809-1720 57.90 | 11.89 | 23.743
 

Jagnix

Benutzer
Sehr erfahren
Mitglied seit
10. Okt 2018
Beiträge
1.127
Punkte für Reaktionen
276
Punkte
109
Und wofür soll das gut sein ?
 

mavFG

Benutzer
Mitglied seit
06. Jan 2016
Beiträge
1.345
Punkte für Reaktionen
4
Punkte
58
Es soll noch Leute geben, die nen Kabelanbieter haben, welche sich technisch übernommen haben..
Ich hatte 1 Jahr so ein Programm in Docker laufen. War bei einem Kabelanbieter der mit p beginnt. Bezahlte 200er Leitung, Abens um die 1-5 Mbit/s oder auch Totalausfall. Morgen lag ich bei 169. Durch die regelmäßige Messung konnte ich schell nachvollziehen, dass abends die Leitungen zusammenbrachen. Früh war alles super. Dumm nur, wenn man da Arbeiten ist.. :cool:
 

Jagnix

Benutzer
Sehr erfahren
Mitglied seit
10. Okt 2018
Beiträge
1.127
Punkte für Reaktionen
276
Punkte
109
Ah verstehe. Danke.
 

BigRonin

Benutzer
Mitglied seit
08. Mai 2015
Beiträge
1.156
Punkte für Reaktionen
129
Punkte
89
Die Idee an sich finde ich ja interessant. Der SpeedTest ist bei mir auf allen mobilen Geräten installiert.
Das es mit diesem Script auch auf der DS funktioniert , bringt mich auf den Gedanken, bzw. die Frage, ob der SpeedTest etwas für mein Tool AvrLogger wäre.

Wie wäre denn eure Meinung dazu?
 

peterhoffmann

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

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.019
Punkte für Reaktionen
319
Punkte
189

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
Die IP der Gegenstelle kannst du bequem über das Argument "--server" auswählen.
Eine Liste der Server erhält man mit "--list".
 

Andy+

Benutzer
Sehr erfahren
Mitglied seit
25. Jan 2016
Beiträge
5.019
Punkte für Reaktionen
319
Punkte
189
Es geht um den Aufbau der Ausgabe. In Deinem Script hast Du

echo `date +%Y%m%d-%H%M`" "$download" | "$upload" | "$ping >> daten.txt

und darin sollte noch die IP vorkommen. Dazu jedoch müssen die ermittelten Werte in die verfügbaren Variablen gespeichert werden, das erfolgt ja über awk.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
5.525
Punkte für Reaktionen
1.360
Punkte
234
sollte noch die IP vorkommen
Da wäre erst mal die Frage, ob die eigene IP oder die IP der Gegenstelle.

Eigene IP: Die halte ich für unwichtig. Eine Einbindung wäre aber natürlich möglich.

IP der Gegenstelle: Die IP der Gegenstelle wird bei der Abfrage mit "--simple" gar nicht genannt, siehe hier:
Simple:
Rich (BBCode):
root@raspberry / $ speedtest-cli --simple
Ping: 12.118 ms
Download: 57.86 Mbits/s
Upload: 11.48 Mbits/s
Im Grunde ist sie auch nicht nötig, da man mit dem Argument "--server" seine Gegenstelle fest bestimmen kann. Wenn man das nicht macht, wird nach meinen bisherigen Erfahrungen die Gegenstelle genutzt, die dem Standort am nächsten ist. Somit ist die Angabe der IP der Gegenstelle auch nicht wichtig.
 


 

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