Magazine Informatica

aMule Client e Daemon

Creato il 10 maggio 2012 da Alexiovk @archlinuxitalia

aMule Client e Daemon

Tutti noi conosciamo aMule non è vero?!!! Bene… allora non servono spiegazioni in merito. Allora perchè questo

articolo? Perchè voglio mostrarvi, da una parte la semplice installazione di aMule come client, dall’altra come creare un piccolo aMule Server per poter scaricare dal nostro server casalingo e collegarci da remoto attraverso il client. Molto utile se vogliamo controllare o aggiungere download da remoto.

Vediamo come allora…

Installazione Client

Per installazione client intendo aver aMule sul proprio Desktop come se fosse un classico programma di download, quindi avere sia il demone che il client sulla stessa macchina. Per prima cosa procediamo con l’installazione lanciando da terminale il comando:

$ yaourt -Sy amule

per chi invece utilizza come ISP FastWeb è presente su AUR il pkg di adunanza, installabile con il comando:

$ yaourt -Sy amule-adnza

Per avviare aMule troviamo il collegamento in menù delle applicazioni -> Internet.-> aMule.

Installazione come Demone

Avere aMule come demone sul nostro Server ci offre molti vantaggi, come la possibilità di poter utilizzare aMule su un server privo di ambiente grafico, la possibilità di poter accedervi da remoto da qualsiasi client ecc.

Installiamo amule con il comando:

$ sudo pacman -S amule

creiamo al termine dell’installazione l’utente con cui faremo “girare” il demone:

$ sudo useradd -m -d /srv/amule -s /bin/bash amule

loghiamoci con l’utenza appena creata attraverso il comando:

$ sudo su amule

una volta loggati lanciamo:

$ amuled --ec-config
$ exit

inseriamo quando richiesta la password temporanea e usciamo premendo i tasti “CTRL + C“.

Creiamo a questo punto l’md5 della nostra password che ci permetterà di collegarici da remoto al server. Questo con il comando:

$ echo -n <password> | md5sum | cut -d ' ' -f 1

dove <password> è la tua password.  Modifichiamo il file di configurazione con il nostro editor preferito:

$ sudo vim /srv/amule/.aMule/amule.conf

e modifichiamo le direttive:

AcceptExternalConnections=1
ECPort=<numeroporta> # la porta dove sarà in ascolto il server
ECPassword=<md5> # l'md5 della nostra password creata poco fa

salviamo e applichiamo i permessi alla direcory /srv/amule con il comando:

$ sudo chown -R amule.amule /srv/amule

Ora non ci rimane altro che creare lo script del demone. Per fare questo creiamo il file con il comando:

$ sudo touch /etc/rc.d/amuled

e modifichamolo con il nostro editor preferito aggiungendo le seguenti righe:

#!/bin/bash
 DAEMON=amuled
 USER=amule
 . /etc/rc.conf
 . /etc/rc.d/functions
case "$1" in
 start)
 stat_busy "Starting $DAEMON"
 su "$USER" -l -s /bin/sh -c "$(printf "%q -f>/dev/null" "/usr/bin/amuled" )"
 if [ $? = 0 ]; then
 add_daemon $DAEMON
 stat_done
 else
 stat_fail
 exit 1
 fi
 ;;
 stop)
 stat_busy "Stopping $DAEMON"
 killall --quiet --ignore-case "/usr/bin/amuled"
 if [ $? = 0 ]; then
 rm_daemon $DAEMON
 stat_done
 else
 stat_fail
 exit 1
 fi
 ;;
 restart|force-reload)
 $0 stop
 sleep 4 #1 is not enough
 $0 start
 ;;
 *)
 printf "Usage: %q {start|stop|restart|force-reload}\n" "$0" >&2
 exit 1
 ;;
 esac
 exit 0

Salviamo e rendiamolo eseguibile con il comando:

$ sudo chmod +x /etc/rc.d/amuled

A questo punto non ci rimane altro che avviare il demone con il comando:

$ sudo /etc/rc.d/amuled start

Per avviarloin modo automaticao aggiungerlo semplicemente nell’array DAEMONS nel file di configurazione /etc/rc.conf dopo la voce network.

DAEMONS=( network amuled ... )

Installiamo nel Client aMule e apriamo aMuleGUI inserendo IP del server dove risiede il demone, la porta specificata e la password.

aMule Client e Daemon

Se tutto è andato nel verso giusto ci siamo connessi al server aMule e possiamo scaricare tranquillamente. Chiudendo il client il nostro server continuerà a scaricare.

;-)

L’unico difetto è che tutti i file completati avranno i permessi dell’utente amule e quindi il nostro utente non potrà accedervi. Per ovviare ci sono due metodi:

  1. spostarli nella nostra home con utenza root e applicare i permessi della nostra utenza;
  2. un piccolo script in bash che controlla la presenza i file completi e li sposta in automatico per noi.

ecco il mio script inserito nel crontab dell’utente root:

#!/bin/bash
amule_dir=/srv/amule/.aMule/Incoming
dest=/home/<username>/amule
tempdir=/home/<username>/amule/.temp
count=`ls $amule_dir | wc -l`
if [ ! -d $dest ]; then
 mkdir $dest
fi
case $count in
    0)
       exit
    ;;
    *)
       if  [ ! -d $tempdir ]; then
          mkdir $tempdir
       fi
      mv $amule_dir/* $tempdir
      chown -R <username>:users $tempdir
       mv $tempdir/* $dest
       rm -rf $tempdir
    ;;
esac

Cambiate <username> con il vostro nome utente ed il gioco è fatto. Ogni n minuti controllerà la directory /srv/amule/.aMule/Incoming e se troverà file li sposterà nella vostra home.

:-)

Buon Download a tutti.


Potrebbero interessarti anche :

Ritornare alla prima pagina di Logo Paperblog

Possono interessarti anche questi articoli :