Cómo controlar aMule a través de su interfaz web.

mulaMira tú por dónde, pero me he encontrado con que en los repositorios de Debian Jessie no está el paquete que necesito para conectarme con el demonio de aMule que tengo corriendo en mi maravilloso RaspberryPi [1], llamado amule-utils-gui.

De manera que en una instalación limpia de Debian toca apuntar los repositorios a sid, actualizar la lista de paquetes e instalar. Después deshacer los cambios en /etc/apt/sources.list y volver a actualizar la lista de paquetes. La verdad es que no es para tanto, pero si eres un quisquilloso de la estabilidad y la pureza del sistema no es muy recomendable andar instalando paquetes de varias ramas.

¿Solución? Fácil, accede a aMule a través de su interfaz web. Solo necesitas un navegador y podrás conectarte desde la red local o, si redireccionas el puerto en el router, desde cualquier lugar y dispositivo.

¿Cómo? Muy sencillo. Está todo explicado en la entrada correspondiente a la configuración del demonio de aMule [2]. Por si acaso no te hace falta o no te apetece tragarte todo el rollo de la instalación y entresacar lo necesario, aquí está:

Conéctate al ordenador en el que está corriendo el demonio de aMule, bien a través de SSH, bien directamente si tiene teclado y monitor. A continuación, edita el archivo de configuración de aMule con el comando:

$ nano .aMule/amule.conf

y busca la siguiente sección:

[WebServer]
Enabled=0
Password=
PasswordLow=
Port=4711

Cambia Enabled=0 por Enabled=1, introduce la misma contraseña que está escrita unas líneas más arriba (en la sección llamada [External Connection]) en su lugar correspondiente y toma nota del número de puerto. Graba, sal y reinicia el servicio con

$ service amule-daemon restart

Listo. Ve a un navegador y, en la barra de direcciones, escribe la IP del servidor, dos puntos y el puerto. Por ejemplo, en mi caso 192.168.0.20:4711. Si deseas conectarte desde el exterior debes redirigir el puerto 4711 (o el que sea que hayas configurado) hacia la IP del servidor y escribir en el navegador, en lugar de esa IP, la IP de salida del router. Te aparecerá una pantalla en la que introducir la contraseña.

amuleweb

¡Tachán!

Enlaces:

[1] https://bokunoshumi.wordpress.com/2012/11/24/convierte-tu-raspberry-pi-en-un-servidor-de-descargas-por-que/

[2] https://bokunoshumi.wordpress.com/2012/12/09/convierte-tu-raspberry-pi-en-un-servidor-de-descargas-amule/

Cómo crear un script que vigile el funcionamiento de un proceso

mula

El nacimiento de esta entrada tiene que ver conla configuración de un servidor autónomo de aMule en un Raspberry Pi.

Resulta que me he encontrado con el problema de que aMule se cierra cada vez que termina la descarga de un archivo grande (de 6 GB o más) o cuando está completando una descarga terminada si la lista de descargas pendientes es muy larga. Aún no sé cuál es la razón ni proponer una solución elegante al problema, pero hay una manera rápida y sencilla de arreglar las cosas: crear un programa que vigile si aMule está corriendo y, si no lo hace, que lo ejecute. Como se puede intuir, este tutorial es para el aMule pero sirve exactamente igual para cualquier proceso que se pare y necesitemos reiniciar de manera autónoma, solo hay que cambiar los comandos.

Para ello me he basado en un script escrito por Pedro Ventura que he modificado ligeramente yo mismo. Lo que hay que hacer es lo siguiente:

Accede a tu RaspberryPi del modo habitual (sesión gráfica, SSH…). Voy a suponer, en lo sucesivo, que el acceso es por consola. Una vez en la sesión de usuario pi, crearemos un archivo nuevo al que llamaremos controlAmule:

nano controlAmule.sh

y, dentro de este archivo, que lógicamente aparecerá vacío, hay que escribir lo siguiente

#!/bin/bash
RESTART=”/etc/init.d/amule-daemon start”
PGREP=”/usr/bin/pgrep”
AMULED=”amuled”
# busca el proceso
$PGREP ${AMULED}
# si no existe y el comando anterior devuelve 0
if [ $? -ne 0 ]
then
# restablece amule-daemon
$RESTART
fi

Recuerda que si copias y pegas desde este blog debes repasar las comillas para que sean las correctas. WordPress intenta introducir comillas de apertura y cierre diferentes, pero en el programa deben ser comillas rectas normales.

Guarda con Ctrl+O y sal con Ctrl+X. El programa necesario ya está hecho. Hazlo ejecutable escribiendo:

chmod +x controlAmule.sh

Ahora solo hay que conseguir que esta verificación del proceso emuled se ejecute de forma periódica. Ejecuta

crontab -e

y se abrirá un editor (nano) con un archivo nuevo en el que hay unas instrucciones escritas en inglés. Ni caso. Desplázate hasta el final del archivo e incluye:

*/15 * * * * bash /home/pi/controlAmule.sh

Guarda con Ctrl+O y sal con Ctrl+X (el nombre de archivo que el programa propone es muy raro, pero no importa. De nuevo, ni caso). Lo que has hecho es programar, para el usuario pi, una tarea que se ejecute cada 15 minutos. Y esa tarea es la que realiza el programa que acabas de escribir. Por supuesto, si deseas guardar el script en otra ubicación o darle otro nombre no pasa nada, pero tienes que respetar la ruta y el nombre en el comando del crontab. También puedes cambiar la frecuencia de ejecución a 5 minutos (*/5…), a 45 minutos (*/45…) o a cualquier intervalo de tiempo que se te ocurra y te parezca correcto. Cron permite una gran versatilidad en la configuración del tiempo, puedes lanzar un proceso los martes a las 3 de la mañana, cada hora de lunes a viernes, el día de tu cumpleaños a la hora de tu nacimiento, lo que quieras. En internet hay multitud de tutoriales para aprender a programar cron. Otra opción, si eres de los que prefieren tener todo centralizado, es editar como root el archivo /etc/crontab e incluir una línea bajo las que ya existen con el mismo contenido de antes. En este caso debes incluir el nombre del usuario entre los asteriscos y el comando a ejecutar, así: */15 * * * * pi bash /home/pi/controlAmule.sh. Los comandos que tengas programados para tu usuario puedes verlos con crontab -l, editarlos con crontab -e y eliminarlos con crontab -r.

Ya solo queda un paso: reiniciar. Si no quieres hacerlo, ejecuta

sudo /etc/init.d/cron restart

si tienes configurado sudo. Si no, abre una consola de root y escribe el mismo comando sin sudo.

¡Y listo, familia, fácil y sencillo.!rpi1