Creación de un Bot de Telegram para ejecutar comandos en un sistema Linux

Buenas a todos! En este post vamos a ver cómo crear un Bot de Telegram escrito en Python para ejecutar comandos en sistemas Linux.

El escenario de la práctica es el siguiente:

Lo primero que vamos a hacer es buscar en nuestra aplicación Telegram el bot «BotFather», un bot que nos permite crear bots y nos proporciona las claves para interactuar con ellos:

Enviamos el comando /start a BotFather y este nos muestra las opciones disponibles:

Elegimos la opción /newbot para crear un bot, le proporcionamos un nombre para el mismo y también un nombre para el usuario que lo manejará. Una vez hecho esto, BotFather nos proporcionará un TOKEN_API:

Una vez creado el bot y teniendo ya nuestro TOKEN_API, podemos ejecutar /mybots y modificar sus atributos, como por ejemplo editar la imagen de perfil del bot (Edit Botpic):

Le enviamos la imagen que deseemos y BotFather la establecerá como la foto de perfil del bot:

En este punto tenemos nuestro api_token. Para obtener nuestro chat_id debemos hablarle al siguiente bot:

Le enviamos el siguiente comando para obtener el chat_id:

En este momento podemos proceder a colocar nuestro bot en la máquina que deseemos (en nuestro caso la raspberry). Podéis descargar el script python que implementa el bot en el siguiente enlace:

piadminbot.py

En el script debemos introducir el token_api y el char_id obtenidos anteriormente:

Colocamos el script en la máquina, le damos permiso de ejecución y lo ejecutamos:

Una vez tenemos el script en ejecución, buscamos nuestro bot:

Podemos empezar a ejecutar los comandos implementados en el script (revisar código):

Ejecutando el comando /comandos el bot nos devuelve una lista de los comandos implementados:

Ejecutando por ejemplo el comando /ssh_estado obtenemos el estado del servicio ssh:

Podemos movernos por el árbol de directorios de linux con el comando /cd {ruta}:

Podemos listar los ficheros del directorio en curso:

Ejecutando el comando /ip podemos visualizar las direcciones ip de las interfaces de red de la máquina:

Estos son algunos ejemplos sencillos, sin embargo podemos hacer prácticamente todo lo que queramos, por tanto esto es algo muy útil para administrar remotamente nuestro servidor Linux.

Más adelante publicaré algún ejemplo más complejo. 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *