Creare una attività pianificata per automatizzare lo speedtest
A cura di
Totò Fiandaca
| issue
#217
| guida/e
Totò Fiandaca
Caso d’uso
Testare una connessione internet tramite l’esecuzione programmata di uno speedtest ogni 30 minuti.
Lo speedtest by Ookla fornisce anche un APP Speedtest CLI che permette di avviare i test da riga di comando, senza dover ogni volta avviare un browser e lanciare la relativa APP.
Per installare la CLI sotto WSL con Ubuntu 20.04, basta lanciare da terminale:
sudo apt-get install curl
curl -s https://install.speedtest.net/app/cli/install.deb.sh | sudo bash
sudo apt-get install speedtest
script bash
Il primo script per eseguire lo speedtest e memorizzare l’output è il segente:
#!/bin/bash
# crea variabili
data=`date +"%Y-%m-%dT%H:%M:%S%:z"`
valori=`speedtest -f csv`
# concatena
record=$data,$valori
# salva i record
echo $record >>/mnt/d/GitHub/speedtest-parabola/output/toto-migliorato.csv 2>&1
restituisce questo output, accodando i vari risultati dello speedtest:
datatime | server name | server id | latency | jitter | packet loss | download | upload | download bytes | upload bytes | share url | download server count |
---|---|---|---|---|---|---|---|---|---|---|---|
2022-06-10T16:02:34+02:00 | WeLink - Niscemi | 17474 | 33.335 | 3.127 | 0 | 1069171 | 2492246 | 11959500 | 22726620 | https://www.speedtest.net/result/c/7dba07e5-610f-4434-9c20-74a192fb5243 | 1 |
2022-06-10T16:30:04+02:00 | INNOVA-tel - Caltagirone | 19305 | 16.173 | 6.269 | N/A | 2973694 | 2416934 | 18611106 | 13552320 | https://www.speedtest.net/result/c/36986cea-affe-4f30-84f9-a407440494ee | 1 |
2022-06-10T17:00:04+02:00 | INNOVA-tel - Caltagirone | 19305 | 18.347 | 2.732 | N/A | 3343245 | 2501710 | 24336292 | 19650240 | https://www.speedtest.net/result/c/8c9f0700-a5a6-404d-ae66-722ee7e59b76 | 1 |
2022-06-10T17:30:01+02:00 | INNOVA-tel - Caltagirone | 19305 | 19.287 | 6.223 | N/A | 3220528 | 2497977 | 21904136 | 16206464 | https://www.speedtest.net/result/c/1ff5df72-f3e3-41b5-90fc-0cf4c4139b62 | 1 |
script batch
questo script serve per inviare i dati in un repository GitHub:
@echo off
git add -A -- "D:\GitHub\speedtest-parabola\output\toto-migliorato.csv"
git commit -m "update"
git push
Unità di pianificazione win 10
Per automatizzare i due script, avviarli ogni giorno a partire dalle 8:00 di mattino e ripeterli ogni 30 minuti, ho usato l’unità di pianificazione di win 10 e quindi ho creato due Attività:
-
Automazione SpeedTest: che avvia ogni 30 minuti il primo script bash;
-
Automazione SpeedTest push: che avvia ogni 30 minuti il secondo script batch;
repository
In questo repository raccolgo i dati:
https://github.com/pigreco/speedtest-parabola