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

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

Loading--------

Benutzer
Registriert
20. Mai 2018
Beiträge
145
Reaktionspunkte
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.
 
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.
 
Danke, blöde Frage aber wie kann ich die DS diesen Befehl automatisch ausführen lassen alle paar Stunden? Python Paket installieren und dann?
 
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
 
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?
 
Meine Beispiele sind mit einer älteren Version gemacht, das musst Du anpassen.
 
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:
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:
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
 
Und wofür soll das gut sein ?
 
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:
 
Ah verstehe. Danke.
 
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?
 
Die IP der Gegenstelle kannst du bequem über das Argument "--server" auswählen.
Eine Liste der Server erhält man mit "--list".
 
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.
 
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.
 
Status
Für weitere Antworten geschlossen.
 

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