Realizando una actividad en mi maquina se me ocurrió enviar notificaciones vía Telegram al finalizar ciertos procesos para no tener que estar siempre pendiente.
#! /bin/bash
BOT_NAME="MiBot"
BOT_TOKEN="<Aqui va el Token del Bot>"
BOT_DATE=$(date +"%d.%m.%Y")
BOT_TIME=$(date +"%r")
BOT_HOST=$(hostname -f)
BOT_TEXTO=$(cat <<MENSAJE
$1
---
Enviado por: <b>$USER</b> <i>($BOT_HOST)</i>
El $BOT_DATE a las $BOT_TIME
MENSAJE
)
curl --silent --output /dev/null \
--data-urlencode "chat_id=<AQUI_TU_ID>" \
--data-urlencode "text=$BOT_TEXTO" \
--data-urlencode "parse_mode=HTML" \
"https://api.telegram.org/bot$BOT_TOKEN/sendMessage"
notify-send "Notificacion enviada via $BOT_NAME!"
El uso seria así: sudo pacman -Syu ; sh miBot.sh 'Sistema ArchLinux Actualizado!!'
Ahora es donde viene lo interesante, hay veces que toca trabajar con servidores bajo linux y las instalaciones no siempre son rápidas así que se pueden poner para notificar cuando terminen.
Otra cosa que estaba pensando es que se puede notificar si el servidor tiene algún valor anormal o leer las alertas del sistema y pasarlas por un script que envié el mensaje.
Solo para información, a diferencia de los correos, telegram no tiene limites de relay así que puede enviar gran cantidad de mensajes al dia.
El script que hice simplemente funciona para mandar notificaciones cuando se lo asignemos, pero también se le pueden poner comandos al bot para que haga los chequeos remotos vía comandos (:
muy interesante pero en mi empresa solo trabajan con servidores windows xD tendremos el hana en linux, pd: ya tengo el servidor en físico y un paquete que llego me imagino es algo de S.O pero no puedo abrirlo hasta que lleguen los consultores el 14 de noviembre igual no creo que me dejen instalarle nada al servidor ya que si se le mueve a la base de datos perdemos la garantía del proveedor
Por ejemplo, yo tengo bots en PHP pero a esos si los tengo para hacer consultas vía comandos (se necesita que el host tenga ssl)
No entiendo porque debería pasarle algo a la Base de Datos xD
Con respecto a que no te dejen tocar el servidor tienes que preguntarlo bien, igual como encargado de IT deberías instalarle algunos programas de respaldo como por ejemplo Acronis o los programas que manejen de seguridad.
Pero eso deberías preguntárselo a los consultores desde ahora para ir viendo opciones. (:
ellos hacen los respaldos cada mes, a lo que ellos se referían es a conectar un programa que yo haga para hacer consultas o cosas asi, que afecten o jalen datos de la base de datos, según tengo entendido el respaldo lo van a dejar configurado para que pueda hacer respaldos con un clic xD
Se pueden hacer cosas entretenidas, incluso estoy pensando en poner comandos como: /info para obtener información de Windows como el uptime, ram y cpu. /captura para que el bot me pase una captura de pantalla.
alguna idea interesante para controlar la PC desde un bot?
Hola Nicolas,
Me encontré con esto de los bots de Telegram, y estoy fascinado!!
En este momento estoy con PHP “enseñándole” algunas cosas a mi bot.
Todo comenzó con una Raspberry y el proyecto de domótica para mi casa, ya consigo darle órdenes a la Rasp desde la web pero me faltaba que la Rasp me pueda notificar cosas, primero pensé desarrollar una app de Android pero requiere crear una cuenta de developer, pagar, etc, así que continué buscando y llegué a los bots. Veo que al tuyo le enseñaste a abrir SAP, genial!
La pregunta que no he tenido tiempo con Google ¿Sabés si podemos hacer lo mismo o parecido con whatsapp?
Para Windows (el video) uso un lenguaje super sencillo llamado Autoit, por lo cual puedo ejecutar programas, usar dispositivos como la cámara, enviar notificaciones de escritorio, etc. Para Autoit no uso webhook asi que tengo que leer cada x seg los últimos mensajes
Una aplicación practica en SAP seria levantar o bajar instancias por un comando, o incluso ver el estado de la instancia via stdout.
También tengo un bot con PHP que me respalda las base de datos MySQL de unos clientes, todos los dias a las 0h y me lo envia a un channel privado.
(Telegram soporta 1.5GB por archivo)
P. D. : Cada usuario de telegram tiene un ID, asi que en vez de usar una interfaz web puedes usar telegram y que la acción se realice únicamente si eres tu quien envia la orden
Gracias por la info!!
Adicionalmente te pregunto, ¿Cómo tendría que hacer para que corra tipo daemon en la Rasp?
Creé algo de código en PHP ya que estoy aprendiendo sobre el lenguaje, pero me falta saber cómo mantenerlo corriendo siempre, o si tendría que agregar a algún daemon que abra el PHP (con eso bastaría)
PHP es de tipo cli, lo ideal para que siempre está corriendo es instalar Apache o Nginx los cuales procesan las solicitudes, si ejecutas PHP por línea de comando mediante un daemon simplemente ejecutaran la orden y se cerrará a menos que uses websockets.
Para instalar un web server te recomiendo buscar como instalar LAMP (Linux, Apache, MySQL, PHP) que es lo más sencillo.
Si vas a correr PHP a modo cli para que ejecute un script únicamente (me imagino que estas usando NOOBS o Raspbian lo cual es linux, pero no me acuerdo que entorno usa) puedes hacer lo siguiente:
Si es LXDE:
/home/TU-USER/.config/lxsession/LXDE-pi/autostart
y le agregas la siguiente línea:
@php -f /home/TU-USER/archivo.php > salida.html
En caso de no ser LXDE puedes ver qué entorno es y buscar el archivo de autoarranque o puedes agregar el comando directamente en el final del archivo .bashrc