Introducción
Un paso mas en la automatización de las tareas consiste en configurar medios para que el usuario sea notificado del estado de las mismas. Para experimentar con los avances obtenidos anteriomente con el servicio de Telegram, a continuación se describirá el procedimiento necesario par configurar a Transmission (cliente de torrent) para que notifique al usuario a través de un mensaje cada vez que un torrent sea descargado completamente.
Precondición
- Transmission correctamente instalado.
- Cliente CLI de Telegram instaldo.
- Script (telegram_sendmsg.sh) instalado.
Configuración inicial del sistema operativo
Por defecto la cuenta del sistema operativo que corresponde con el usuario de Transmission viene por seguridad con el shell desactivado y sin directorio home. Para integra el envío de mensajes con Telegram es necesario modificar esto.
Ajuste los siguientes pasos de acuerdo con la información específica de su sistema operativo. Los pasos descritos han sido implementados bajo Debian/Raspbian, algunos nombres pueden variar de acuerdo con la distribución de Linux que utilice.
$ sudo usermod --shell /bin/bash debian-transmission $ sudo usermod --home /home/debian-transmission debian-transmission
Si la ruta del directorio home no existe es necesario crearla.
$ sudo mkdir /home/debian-transmission $ sudo chown -R debian-transmission:debian-transmission /home/debian-transmission
Configuración inicial de Telegram
Para utilizar Telegram con Transmission es necesario configurar el primero bajo la cuenta del usuario del segundo de la siguiente manera.
Convertirse en el usuario de Transmission.
$ sudo bash $ su - debian-transmission
Ejecutar Telegram por primera vez, la aplicación le solicitará el número telefónico de la cuenta (que ya debe estar activa) que se utilizará para enviar los mensajes.
Especifique este número de la forma +CÓDIGO_PAÍS TELÉFONO. Posteriormente especifique el código de confirmación enviado a través de Telegram.
$ telegram -k /etc/telegram/server.pub Telegram-client version 0.01-beta, Copyright (C) 2013 Vitaly Valtman Telegram-client comes with ABSOLUTELY NO WARRANTY; for details type `show_license'. This is free software, and you are welcome to redistribute it under certain conditions; type `show_license' for details. Telephone number (with '+' sign): +573001234567 *** phone registered *** sending code *** send_code: dc_num = 1 Code from sms (if you did not receive an SMS and want to be called, type "call"): 12345 User Telegram: 0 unread > quit
Convertirse de regreso en el usuario sin privilegios habitual.
$ exit $ exit
Crear el script para Transmission
Crear el script que realizará las tareas que deberán suceder una vez Transmission recibe un torrent completo, en este caso enviará un mensaje a través de Telegram utilizando el script de apoyo (telegram_sendmsg.sh).
Este script puede hacer uso de las siguientes variables de ambiente proporcionadas por Transmission.
TR_APP_VERSION | Versión de Transmission. |
TR_TIME_LOCALTIME | Fecha y hora de recibo del torrent. |
TR_TORRENT_DIR | Directorio donde se almacenó el torrent. |
TR_TORRENT_HASH | Hash del torrent una vez recibido. |
TR_TORRENT_ID | Identificador del torrent. |
TR_TORRENT_NAME | Nombre del torrent recibido. |
Copie el script torrent_done.sh en una ubicación conocida como /etc/transmission-daemon.
$ sudo chmod +x /etc/transmission-daemon/torrent_done.sh
Personalice las siguientes variables definidas en el script.
PROGRAM | Ubicación del script telegram_sendmsg.sh. Si este se encuentra ubicado en el PATH no debería necesitar ningún cambio en este variable. |
RECIPIENT | Nombre del contacto (peer) que recibirá los mensajes de Telegram. |
MESSAGE | Mensaje que será enviado cada vez que llegué un torrent completo. |
Pruebas del envío de mensajes
Verificar que el envío de mensajes es exitoso con las tres aplicaciones o scripts implementados. Ajuste el receptor de los mensajes de prueba según su caso.
Primero, verificar que Telegram CLI envía correctamente los mensajes.
$ telegram -k /etc/telegram/server.pub > msg Pepito_Pimenton test1 > quit
Segundo, verificar el funcionamiento del script telegram_sendmsg.sh.
$ telegram_sendmsg.sh Pepito_Pimenton test2
Tercero, verificar el funcionamiento del script torrent_done.sh.
$ /etc/transmission-daemon/torrent_done.sh
Configurar Transmission
Configurar Transmission para que ejecute el script torrent_done.sh tan pronto como reciba un torrent completo.
Detener el servicio de Transmission. Si esto no se realiza los siguientes cambios en la configuración no serán tenidos en cuenta.
$ sudo service transmission-daemon stop
Ajustar las siguientes opciones de configuración.
$ sudo vi /etc/transmission-daemon/settings.json "script-torrent-done-enabled": true, "script-torrent-done-filename": "/etc/transmission-daemon/torrent_done.sh",
Iniciar nuevamente el servicio de Transmission.
$ sudo service transmission-daemon start
Configuración final del sistema operativo
Por seguridad es conveniente remover el acceso al shell por parte del usuario de Transmission.
$ sudo usermod --shell /bin/false debian-transmission
Siendo un tanto paranóicos también puede ser conveniente bloquear la cuenta para impedir su acceso directo.
$ sudo passwd -l debian-transmission
Tenga en cuenta que se realizaron estos pasos para cuando necesite acceder como este usuario.
Recursos
- Script torrent_done.sh.
http://blog.jorgeivanmeza.com/wp-content/uploads/2014/05/torrent_done.sh_.txt