Cambiare automaticamente i limiti di banda in amule
Categories: Linux
Tags:
Ogni home-server che si rispetti ha il suo amule installato come demone. Peccato che amule, come tutti i programmi di file sharing succhia-banda, possono renderci la navigazione lenta anche quando non stiamo scaricando, o abbiamo pochi download in coda, dato che sfruttano la nostra banda in uscita per condividere i files scaricati. Di contro limitando molto la banda in uscita rischiamo di scaricare lentamente (politica di amule).

Per ovviare a questo problemuccio ho scritto questo script che in base al numero dei download in coda, alza o abbassa i limiti di banda del nostro client peer-to-peer preferito, a patto che sia stato compilato con l’utility amulecmd, o, nel caso delle distribuzioni “a pacchetto”, sia installato il pacchetto relativo ad amulecmd.
Lo script setta a 2kB/s la velocità di upload quando non c’è nessun file nella coda dei downloads; se ci sono meno di tre file nella coda la velocità di upload viene settata a 10kB/s, in tutti gli altri casi la velocità di upload verrà settata a 30kB/s. La parte iniziale dello script contiene dei parametri ben commentati per modificarne il comportamento.
#!/bin/sh
#password per connettersi al demone
PASSWORD="abc"
#comando daeseguire per connettersi al demone (di solito è sempre questo)
AMULE_COMMAND="amulecmd"
#limite della banda in upload quando non c'è nessun file nella coda dei download
IDLE_BW_UP=2
#numero minimo dei file in download per settare il limite di banda
#in upload al valore "normale"
MIN_DW_LIMIT=2
#limite di banda in upload quando il numero dei file nella coda dei download
#è compreso sta 1 e MIN_DW_LIMIT
MIN_BW_UP=10
#limite di banda in upload "normale" ovvero quando il numero dei files in coda
#è superiore a MIN_DW_LIMIT
NORMAL_BW_UP=30
UP_LIMIT="set bwlimit up "
DW_LIMIT="set bwlimit down "
COMMAND="$AMULE_COMMAND -P$PASSWORD -c"
if [ -z "$(pgrep amuled)" ]; then
#echo “amule chiuso”
exit
fi
setUploadBw()
{
CURR_BW_UP=`expr substr “$($COMMAND “get bwlimits” | grep “Up”)” 24 2`
if [ "$CURR_BW_UP" -ne "$1" ]; then
$COMMAND “$UP_LIMIT $1″ > /dev/null
$COMMAND “$DW_LIMIT 0″ > /dev/null
echo “$0: La banda in uscita è stata settata a $1 kB/s”
fi
}
NDOWN=$($COMMAND “show dl” | grep -c “>”)
if [ "$NDOWN" -le 0 ];then
setUploadBw $IDLE_BW_UP
else
if [ "$NDOWN" -le "$MIN_DW_LIMIT" ]; then
setUploadBw $MIN_BW_UP
else
setUploadBw $NORMAL_BW_UP
fi
fi
Copiamo e incolliamo il tutto in un file, es “setamulebandwidth”, modifichiamo i parametri che ci interessano, salviamolo in /usr/bin e settiamogli i diritti di esecuzione:
#chmod a+x /usr/bin/setamulebandwidth
Naturalmente dobbiamo fare eseguire il nostro script in maniera automatica almeno ogni 5 minuti, anche se personalmente lo faccio girare ogni minuto, e per fare questo usiamo cron:
# sudo crontab -e
e aggiungiamo la seguente riga:
* * * * * /usr/bin/setamulebandwidth
salviamo ed è fatta. Ora il vostro amule cambierà il limte di banda in upload dinamicamente!
Se sei interessato a questo post, potresti anche provare a leggere:
-
No related posts
19 Nov 2007 inandrea
Bell’articolo Andrea!
Sto installando Gentoo nel mio pc serverino di casa, non vedo l’ora di provare il tuo script! 
Ma, avevi dubbi? Andre è troppo bravo!!!!
Amore mioooooo ti amooooooooooo!
Sei molto più bravo di quello Dzamirro lì!