Realizar un Bot de Telegram para que nos alerte y nos notifique sobre algo que pasa en nuestro sistema operativo Linux es sencillo y muy útil. Vamos a ver como podemos implementar Telegram para que nos alerte de algún suceso en nuestro sistema.
Requisitos Previos
Lo primero que debemos hacer es entrar a Telegram para obtener nuestro Bot y nuestro chat_id que son necesarios para poder mandar mensajes con Bash. En Telegram buscaremos y agregaremos a BotFather y seguiremos sus instrucciones para crear nuestro primer Bot.
Una vez la hayamos creado nos proporcionara un mensaje donde veremos la URL del chat de nuestro Bot en la que accederemos para darle al botón START para que así empiece a recibir comandos y un TOKEN que debemos guardar para más tarde.
Otra cosa importante que necesitaremos es el chat_id de nuestro perfil esto es fácilmente obtenible agregando a Telegram userinfobot el cual nos dará información de nuestro perfil.
Código
Obtenido ya los requisitos necesarios vamos a crear un archivo llamado «bot.sh» en el cual meteremos el código de nuestro bot.
Introduciremos el siguiente código:
#!/bin/bash
TOKEN="tu_token_aqui"
CHAT_ID="tu_id_de_chat_aqui"
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="¡Hola, Mundo!"
El código lo que haces es mediante la API de Telegram hacemos que el Bot nos mande a nosotros un «¡Hola, Mundo!» de esta manera podemos crear alertas sobre lo que pasa en nuestro sistema.
Vamos ha ver un ejemplo sencillo de como podríamos implementar una alerta para el sistema:
#!/bin/bash
TOKEN="tu_token_aqui"
CHAT_ID="tu_id_de_chat_aqui"
URL="https://api.telegram.org/bot$TOKEN/sendMessage"
# Obtenemos el espacio en disco libre como un porcentaje
DISK_SPACE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//g')
# Comprueba si el espacio en disco es inferior al 20%
if (( DISK_SPACE > 80 )); then
curl -s -X POST $URL -d chat_id=$CHAT_ID -d text="¡Alerta! Espacio en disco disponible: $DISK_SPACE%"
fi
En este script lo que hacemos es comprobar la memoria disponible en nuestro sistema, si la memoria es inferior al 20% nos enviara a nuestro Telegram un mensaje de alerta con el espacio que nos queda disponible.
Para hacer más efectivo esto programaremos una tarea que se ejecute cada cierto tiempo en el archivo crontab para que se ejecute este programa cada x tiempo.
Le damos permisos de ejecución a nuestro Bot:
chmod +x /la/ruta/del/archivo
E iniciamos crontab:
crontab -i
Agregamos dentro la siguiente línea al final del archivo lo que hará que cada 5 minutos se ejecute nuestro script y haga esa validación:
*/5 * * * * /ruta/a/tu/script.sh
Con todos estos pasos ya tendremos configurado nuestro primer Bot de alerta en Bash para nuestro sistema o servidor Linux.