TGfile: Bash Script
Esta entrada voy a compartir un sencillo Bash Script, que nos va a permitir enviar ficheros a demanda, desde nuestra Estación de trabajo/PC/Servidor
a Telegram.
Para poder configurar el script tan solo has de editar estas dos variables del script:
telegram
: Es el ID que te identifica en la red Telegram, si estableces una conversación con el bot @lordpedalbot te dira cual es.token
: Solamente si dispones de un bot propio y quieres usarlo cambia ese valor, en caso contrario no es necesario modificar la variable.
NOTA: El token de referencia del post no tiene validez, haz de usar tu propio bot u otro token conocido.
Para configurarlo sobre nuestra base Debian seguimos este mini-tutorial.
Creamos la carpeta de trabajo donde alojaremos el script, entramos en ella y satisfacemos dependencias del script:
mkdir -p $HOME/scripts && cd $HOME/scripts && \
sudo apt-get update && \
sudo apt-get -y install curl
A continuación creamos el script:
nano tgfile.sh
Añadimos el contenido del fichero:
TIP: Recuerda modificar la variable telegram=
por tu ID
#!/bin/bash
#
# https://lordpedal.github.io
# Another fine release by Lordpedal
#
# ID Telegram (Consulta @Lordpedalbot)
telegram=79593223
# BOT
token=289352425:AAHBCcKicDtSFaY2_Gq1brnXJ5CaGba6tMA
url=https://api.telegram.org/bot$token
# Archivo a enviar
archivo=$1
# Mensaje Online
mensaje='Another fine release by Lordpedal'
# Inicia bucle chequeo de Red
while true
do
# Comprueba disponibilidad de Red
if ping -c 1 -W 5 google.com 1>/dev/null 2>&1
then
if [ -f "$archivo" ]; then
# Red disponible
echo -e "\e[0;32mConexion establecida...Enviando archivo\e[0m"
/usr/bin/curl -s \
-o /dev/null \
-F chat_id="$telegram" \
-F document=@"$archivo" \
-F caption="$mensaje" \
$url/sendDocument
echo -e "\e[0;37mArchivo \e[0m\e[1;33m$archivo\e[0m \e[0;37menviado correctamente\e[0m"
# Termina bucle disponibilidad de Red
break
else
echo -e "\e[1;31mFichero a enviar no definido\e[0m"
break
fi
else
# Red no disponible
echo -e "\e[1;33mConexion no establecida...\e[0m"
fi
# Espera 1s y reinicia bucle
sleep 1
done
Guardamos el fichero, salimos del editor y le damos permisos de ejecución:
chmod +x tgfile.sh
Vamos creamos un enlace simbólico a la ruta de ejecutables:
sudo ln -s $HOME/scripts/tgfile.sh \
/usr/local/bin/tgfile
A partir de este momento con ejecutar la orden tgfile + fichero
nos llegara a nuestro Telegram, muy util si trabajamos en remoto por ejemplo desde conexiones SSH.
Si lo ejecutamos con variable de fichero nos devolvera:
pi@overclock:~/scripts$ tgfile tshh.log
Conexion establecida...Enviando archivo
Archivo tshh.log enviado correctamente
Si lo ejecutamos sin variable de fichero nos devolvera:
pi@overclock:~/scripts$ tgfile
Fichero a enviar no definido
El script admite múltiples mejoras, pero cumple de sobra la idea inicial de hacer algo sencillo y funcional. Siéntete libre de adaptarlo y mejorarlo.
Y listo!