Forum Astuces.divers [Web/Réseau] aMule daemon, de manière intelligente

Posté par  (site web personnel) .
Étiquettes : aucune
0
9
nov.
2006
Le très bon client ed2k aMule possède une version 'daemon' très sympathique.
Je trouve intéressant de ne lancer le daemon au démarrage de ma machine que si j'ai des téléchargements en cours, car malheureusement, il est un peu trop gourmand en ressources pour qu'il tourne en permanence sur mon ordi. J'ai donc voulu qu'en plus de ça, il se lance avec une priorité faible. Voila comment j'ai fait :

/etc/default/amule-daemon :
RUN_AT_STARTUP="NO"
AMULED_USER="votreuser"
if [ `ls /chemin/vers/repertoire/temporaire/de/amule/ | wc -l` != 0 ]; then RUN_AT_STARTUP="YES"; fi
Le répertoire temporaire est celui qui contient les fichiers *.met

/etc/init.d/amule-daemon
[...]start ()
{
echo -n "Starting aMule : amuled"
export HOME
start-stop-daemon -N 16 --chuid $AMULED_USER --user $AMULED_USER --start --exec $DAEMON --background
echo "."
}
[...]
j'ai choisi une priorité de 16 arbitrairement

script à insérer dans sa crontab pour être averti par mail de la fin d'un téléchargement
#!/bin/bash

if [ `ls /repertoire/tmp/ | wc -l` != 0 ]; then
mv /repertoire/ou/arrivent/les/fichiers/* /repertoire/ou/jai/envie/de/ranger/les/fichiers -v
fi

if [ `ls /repertoire/tmp/ | wc -l` -eq 0 ]; then
killall amuled -q
fi

Ca vaut ce que ça vaut, mais j'étais très content de moi quand j'ai fait ça, alors je partage :o)
  • # merci

    Posté par  . Évalué à 1.

    sympa l'astuce, moi j'avais déjà fait un script pour déplacer les fichiers terminés, vers un répertoire de tri. Le problème avec un mv tout simple, c'est lorsqu'aMule est en train de finaliser le fichier. (Enfin je crois) le système peut être en train de copier le fichier en train d'être remplit et ca merdouille. Du coup j'avais commencé à faire un script qui attend qu'une heure ce soit écoulée avant de déplacer le fichier...
    ca donne un truc comme ca :
    $DIRS repertoire source (là ou amule met les fichiers)
    $DIRD repertoire de destination
    apres un cd $DIRS
    for a in *
    do
    if [ -f "$a" ] ; then
    datefichier=$(stat -c%Y "$a")
    datecourante=$(date +%s)
    dateseuil=$(($datecourante-$delaisec))
    if [ $datefichier -lt $dateseuil ] ; then
    mv $DIRS/"$a" $DIRD/
    fi;
    fi;
    done;

    ça vaut ce que ça vaut mais ça a l'air de bien marcher...
    • [^] # Re: merci

      Posté par  . Évalué à 1.

      find $DIRS -type f -amin +10 -exec mv {} $DIRD/ \;

      Si un fichier du dossier $DIRS (et ses sous-dossiers) n'a pas été accédé dans les 10 dernières minutes alors le déplacer dans $DIRD.
      • [^] # Re: merci

        Posté par  . Évalué à 1.

        et si le telechargement s'arrete mais que le fichier n'est pas complet (plus de sources dispos pour le moment par exemple) ?
        il est deplacé aussi ?
        • [^] # Re: merci

          Posté par  . Évalué à 2.

          C'est pour celà qu'il y a je crois un repertoire "temporaire" (1) et un repertoire qui recoit le fichié terminé (2).
          d'apres ce que j'ai compris, il s'agit là de deplacer depuis ce deuxieme vers un autre repertoire de tri...

          (1) : c'est ce repertoire qu'il teste pour savoir s'il faut demarrer le demon... dans le script "amule-daemon", ici "/chemin/vers/repertoire/temporaire/de/amule/"

          (2) c'est le "/repertoire/ou/arrivent/les/fichiers/"

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.