(see below for English version)
Dieses Repo beinhaltet ein Python-Skript, as zusammen mit speed-cloudflare-cli und cron csv-Dateien schreibt, um die Geschwindigkeit eines Internetzugangs zu monitoren. Das ganze ist eventuell nützlich, um dem eigenen ISP aufs Dach zu steigen, weil der nicht die Bandbreite liefert, die im Vertrag vereinbart wurde.
- Linux (vermutlich gehen auch Unix-artige Systeme und WSL, hab ich aber nicht probiert)
- python 3
- cron
- node / npm
- das Repo hier klonen.
- npm install --global speed-cloudflare-cli
- mit
$ which speed-cloudflare-cli
schauen, wo das Skript ist - gegebenenfalls den Pfad zum Script in cloudflare-csv-helper.py als CLOUDFLARE_CLI_PATH anpassen.
- csv-header schreiben:
python3 cloudflare_csv_helper.py header > ~/cloudflare.csv
- cronjob einrichten:
5-59/15 * * * * cloudflare_csv_helper.py >> ~/cloudflare.csv
incrontab -e
vermerken - das gibt alle Viertelstunde, startend um 5 nach voll, einen Test, der dann in die CSV wandert.
Wer andere Zeitsettings braucht, https://crontab.guru/ hat euren Rücken.
Inspiriert ist das hier von https://github.com/HenrikBengtsson/speedtest-cli-extras. Dadurch kommen auch die start und stop Spalten in der Ausgabe zustande, die nicht aus speed-cloudflare-cli selbst stammen.
Wieso ist das hier nicht bash? Weil ich das nicht kann.
- Messungen am besten (in der Netzwerktopologie) nahe am oder sogar im Router durchführen
- Messungen am besten mit einer Kabelverbindung (wie in LAN-Kabel) durchführen
- Messungen am besten mit einem Gerät durchführen, das mehr Bandbreite als der Internetzugang kann
- Der Spaß hier funktioniert für mich auf meinem RaspberryPi mit Raspian. Andere Geräte habe ich nicht getestet
- Wenn ich mal Zeit und Lust hab, schaue ich, dass Fehlerbehandlung - sowas wie "hm grade gar kein Internet da" ordentlich behandelt wird
Let's use some python and speed-cloudflare-cli together with cron to create csv-data on broadband connection speed over time. May come in handy if you want to get into a fight with your ISP.
- Linux (most likely Unix, macOS or windows with WSL are fine - but untested)
- python 3
- cron
- node / npm
- clone this repo
- npm install --global speed-cloudflare-cli
- find path to speed-cloudflare-cli
$ which speed-cloudflare-cli
- check in cloudflare-csv-helper.py if CLOUDFLARE_CLI_PATH is correct for you.
- write csv-header (adjust paths as needed):
python3 cloudflare_csv_helper.py header > ~/cloudflare.csv
- setup cronjob (I recommend absolute paths here.) : Add
5-59/15 * * * * cloudflare_csv_helper.py >> ~/cloudflare.csv
incrontab -e
- Now you should get a new line in the csv every 15 minutes, starting at 5. (see https://crontag.guru for reference if you need something else)
- Try measuring as near to the router/moden as possible
- Best results measuring with a wired connection
- Have enough bandwidth on the measuring device (e.g. don't expect good results measuering a 400 / 25 VDSL2 connection via Fast Ethernet)
- I put this together on Raspian. It may or may not work on other devices.