Script para mlnet -controlador automático de las tasas-

Hace unos días recibí un e-mail que hacía referencia al script que escribí para controlar las tasas del mldonkey: Controlador automático de los rates del MLDonkey.

Cito textualmente dicho e-mail:
Saludos, este script lo hice basado en uno que publicaste, me gustaria que lo vieras, agradeceria tus comentarios.
lo uso con cron cada 10 minutos, en un servidor ciego con debian.

Estamos en contacto.

Y me puse en contacto con él para ver si podía subirlo al blog, ante su afirmativa aquí está (he modificado algunas variables bajo su permiso para que no de pie a errores):

#!/bin/bash
# Script para Variar las tasas subida/bajan en el Mlnet en una LAN
#Elaborado por Miguel Mtz (aka) Xarmaz
#Basado en trabajos tomados de la RED de:
# Jaime Bosque (aka) KetS e-mail: jaboto (at) gmail.com
# aRDi
# tazok de esdebian.org
#Requerimientos:
#nmap telnet MLdonkey
#
#Se Requiere programar una entrada en Cron para que lo ejecute con regularidad
#Al ejecutarse inicia el demonio mlnet si no esta corriendo,
#determina cuantos equipos estan conectados y asigna la tasa mas
#adecuada de descarga.
#sirve para maquinas basadas en Debian y ubuntu

# definir Variables
#-----------------------------------------------------------------------------------
Usuario=admin
Contrasenna= (pon tu contraseña)
LAN=192.168.1
Servidor=192.168.1.xxx
Puerto=4000
Registro="/var/lib/mldonkey/acelerador.log"

# Establece los criterios y las tasas mas adecuadas
# Todo al Mlnet, solo servidor
TSalta=0
TDalta=0
# 1 o 2 maquinas aparte del servidor
TSMedia=5
TDMedia=15
#mas de 3 maquinas Conectadas.
TSBaja=2
TDBaja=6
#-----------------------------------------------------------------------------------
#Determina si el demonio esta corriendo y de no ser así lo lanza.
EstadoDemonio=`pidof mlnet|wc -l`
Proceso=`pidof mlnet`

if [ "$EstadoDemonio" == "1" ]; then

# Determina cuantas Maquinas estan Conectadas a la LAN
# si hubo cambios procede a modificar estado
NumMaqAct=`nmap -sP $LAN.* | grep $LAN | wc -l`
UltimoReg=`tail -n1 $Registro`
NumMaqAnt=${UltimoReg:22:1}

if [ "$NumMaqAnt" == "$NumMaqAct" ]; then
echo "nada que hacer"
exit 0
else
# Asigna la tasa mas Adecuada en Funcion de las maquinas conectadas
# el valor mas bajo es 2 (router y Servidor)

case $NumMaq in
0|1|2)
TasaS=$TSalta
TasaD=$TDalta
;;
3|4)
TasaS=$TSMedia
TasaD=$TDMedia
;;
5|6|7|8|9|10|11|12)
TasaS=$TSBaja
TasaD=$TDBaja
;;
esac

#Envia la instruccion al Servidor via telnet
{
sleep 1
echo auth $Usuario "$Contrasenna"
sleep 1
echo set max_hard_upload_rate $TasaS
sleep 1
echo set max_hard_download_rate $TasaD
sleep 1
echo q
} | telnet $Servidor $Puerto

#introduce en registro el movimiento.
echo `date +"%d/%m/%y -- %H:%M"` E$EstadoDemonio M$NumMaqAct S$TasaS D$TasaD P$Proceso >> $Registro
fi
else
#Borrar Archivos que pueden impedir el arranque
if [ -f /var/run/mldonkey/mlnet.pid ]; then
rm /var/run/mldonkey/mlnet.pid
rm /var/lib/mldonkey/mlnet.pid
#introducir en registro el movimiento.
echo `date +"%d/%m/%y -- %H:%M"` "mlnet se encontro parado y con archivo pid sin eliminar" >> $Registro
fi
#Inicia el demonio mlnet
/etc/init.d/mldonkey-server start
echo `date +"%d/%m/%y -- %H:%M"` "mlnet lanzado" >> $Registro
fi
exit 0

Espero que os sirva de ayuda, los agradecimientos a Xarmaz, yo sólo me limito a publicar su trabajo 😉

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s