Varias veces en Nación TVNAUTA he mencionado que tengo una máquina haciendo Speedtest (http://www.speedtest.net) desde consola y que se suben a una hoja de cálculo de Google Drive, tutorial que saqué desde Makezine
Yo lo hago con una Raspberry PI B+ y funciona perfecto, salvo que alguna veces no escribe los datos en la hoja de Google, pero estoy buscando como poder saber el porque no sucede. (ya lo solucioné).
Para hacer esto, debemos tener los siguientes ingredientes:
- Computador con linux siempre encendido (Raspberry PI en mi caso)
- Cuenta en Google Drive a través de tu Gmail (http://www.gmail.com)
- Cuenta en IFTTT (http://www.ifttt.com)
En mi caso yo lo hago con el equipo conectado a la red a través de su puerto RJ45 y no de Wi-Fi para así eliminar la pérdida que pudiese existir y además contrasto las mediciones con una gráfica del consumo de banda ancha que tengo con un Cacti (http://www.cacti.net) que habla con el router vía SNMP (tema de otro tutorial).
Una vez que tenemos el sistema operativo instalado, ejecuto el siguiente comando (en Raspbian, el sistema operativo por defecto de las Raspberry Pi)
Con lo anterior, se instaló PIP, que e sun manejado de paquetes de Python y luego el paquete de instalación del speedtest en línea de comandos.
A partir de lo anterior, hacemos una prueba:
Listo.. ya tenemos instalado nuestro cliente de speedtest, ahora lo que debemos hacer es que esto funcione con cierta periodicidad; en mi caso cada una hora, y cara eso vamos a usar el comando Cron y generaremos un archivo llamado speedtest-cron.sh usando en mi caso vim
y ahora agregamos adentro lo siguiente:
Ahora que ya tenemos generado el archivo y uno de registro (log), lo llamaremos desde el crontab
una vez abierto el crontab, agregaremos lo siguiente:
Este crontab correrá a los 10 minutos de cada hora (no cada 10 minutos) y escribirá el resultado en un archivo llamado speedtest.log
Ok, esa es la salida del archivo que aún está media ilegible, así que en vez de rehacer todo de nuevo, usaremos las speedtest-cli-extras que hacen el trabajo de hacer todo más entendible para los scripts que vendrán después.
Aunque esto se ve mucho más desordenado que las líneas anteriores, es un texto que los programas pueden interpretar separando cada campo por el “;” entre ellos.
Ahora viene la parte del IFTTT (significa If Then Do That = Si Pasa Esto, Haz esto Otro). Hablaremos más en profundidad en el programa sobre todo lo que se puede hacer cone este sistema de programación de alto nivel.
Asumiendo que ya tienes la cuenta, debes buscar la receta que habla de Maker y Speedtest
Ahora, la magia… vamos a hacer que en vez de escribir la respuesta anterior a un log, haremos que se suba los valores usando la llave secreta que se nos genera al suscribirnos a la receta
Ahora, vamos a generar el archivo que llama al speedtest-cli y que toma los valores que se generan, los corta en trozos y sube la información a nuestra hoja de cálculo de Google Drive.
Pueden descargar el archivo en su home o bien escribir lo siguiente en un archivo llamado speedtest-ifttt.sh
En donde dice secret_key=”SECRET_KEY_HERE”, dejen las comillas.
Ahora, le dan permiso de ejecución y lo ejecutan
Ahora vayan a su Google Drive y verán una nueva planilla llamada speedtest
Yo tengo varios archivos ya que al llegar a los 2.000 registros, automáticamente se genera una planilla nueva.
Estas son las columnas que se escriben en el archivo.. yo las agrego a mano, nada complejo, pero es la fecha, latencia (en milisegundos o ms) , la velocidad de bajada en Megabits por segundos (Mbit/s) u luego de subida en la misma magnitud.
Ahora, debemos modificar nuestro speedtest-cron.sh para que al ser ejecutado por crontab cada hora, apunte al nuevo script que generamos
Voila!!! ya tenemos nuestro script que generará lo siguiente:
Aquí tienen las entradas en su Google “ducks” como diría mi amigo Franco Catrín