MàJ automatique de la base UpNp
Posted: 10 Jun 2013 22:42
Bonjour,
Après plusieurs expériences, j'ai constaté que le programme "fuppesd" du service UpNp se comporte de la façon suivante :
- Si le fichier de la database n'existe pas, l'arrêt puis la relance du programme "fuppesd" le construit (ou le reconstruit) entièrement.
- Si le fichier de la database existe, l'arrêt puis la relance du programme "fuppesd" le met à jour.
Donc, pour faire suite au post suivant ("viewtopic.php?f=35&t=3864") et suite à mes constatations, je vous propose le shell suivant à installer sur votre serveur et à lancer automatiquement et de façon régulière par le service cron de Nas4Free. Vous constaterez au début du script la variable "REBUILD".
En positionnant cette variable à 1, vous provoquerez l'effacement du fichier database de "fuppesd" et donc sa reconstruction complète.
En positionnant cette variable à 0, le fichier database de "fuppesd" n'est pas supprimé, il sera donc simplement mis à jour (le script est proposé dans cette configuration ci-dessous).
N'oubliez pas de mettre les droits en exécution pour ce script !
Personnellement, je ne me suis pas cassé la tête, j'ai mis le script dans le même répertoire que celui de la database, c'est à dire du fichier "fuppes.db",
ainsi que la trace de l'exécution du script, mais vous pouvez les disposer ailleurs.
Les chemins en vert sont donc à adapter dans votre implémentation du script sur votre serveur.
Cordialement
#!/bin/bash
REBUILD=0
database=chemin du fichier database/fuppes.db
trace=chemin du fichier trace de ce programme/maj_fuppes.log
exec 1>${trace}
echo "-----------------------------------------------------"
date
echo "-----------------------------------------------------"
if (test `ps -acux | grep "root.*fuppesd" | wc -l` -eq 1)
then echo "kill de fuppesd ..."
killall fuppesd
while (test `ps -acux | grep "root.*fuppesd" | wc -l` -eq 0)
do sleep 5
done
if test -e ${database}
then if (test ${REBUILD} -eq 1)
then echo "Suppression du fichier ${database}"
rm ${database}
else echo "Mise à jour de ${database}"
fi
else echo "Le fichier ${database} n'existe pas !"
fi
echo "Relance du service fuppesd"
/usr/local/bin/fuppesd --log-level 2 \
--log-file /var/log/fuppes.log \
--config-file /var/etc/fuppes.cfg \
--temp-dir /tmp
else echo "Service fuppes non actif."
fi
echo "-----------------------------------------------------"
date
echo "-----------------------------------------------------"
Après plusieurs expériences, j'ai constaté que le programme "fuppesd" du service UpNp se comporte de la façon suivante :
- Si le fichier de la database n'existe pas, l'arrêt puis la relance du programme "fuppesd" le construit (ou le reconstruit) entièrement.
- Si le fichier de la database existe, l'arrêt puis la relance du programme "fuppesd" le met à jour.
Donc, pour faire suite au post suivant ("viewtopic.php?f=35&t=3864") et suite à mes constatations, je vous propose le shell suivant à installer sur votre serveur et à lancer automatiquement et de façon régulière par le service cron de Nas4Free. Vous constaterez au début du script la variable "REBUILD".
En positionnant cette variable à 1, vous provoquerez l'effacement du fichier database de "fuppesd" et donc sa reconstruction complète.
En positionnant cette variable à 0, le fichier database de "fuppesd" n'est pas supprimé, il sera donc simplement mis à jour (le script est proposé dans cette configuration ci-dessous).
N'oubliez pas de mettre les droits en exécution pour ce script !
Personnellement, je ne me suis pas cassé la tête, j'ai mis le script dans le même répertoire que celui de la database, c'est à dire du fichier "fuppes.db",
ainsi que la trace de l'exécution du script, mais vous pouvez les disposer ailleurs.
Les chemins en vert sont donc à adapter dans votre implémentation du script sur votre serveur.
Cordialement
#!/bin/bash
REBUILD=0
database=chemin du fichier database/fuppes.db
trace=chemin du fichier trace de ce programme/maj_fuppes.log
exec 1>${trace}
echo "-----------------------------------------------------"
date
echo "-----------------------------------------------------"
if (test `ps -acux | grep "root.*fuppesd" | wc -l` -eq 1)
then echo "kill de fuppesd ..."
killall fuppesd
while (test `ps -acux | grep "root.*fuppesd" | wc -l` -eq 0)
do sleep 5
done
if test -e ${database}
then if (test ${REBUILD} -eq 1)
then echo "Suppression du fichier ${database}"
rm ${database}
else echo "Mise à jour de ${database}"
fi
else echo "Le fichier ${database} n'existe pas !"
fi
echo "Relance du service fuppesd"
/usr/local/bin/fuppesd --log-level 2 \
--log-file /var/log/fuppes.log \
--config-file /var/etc/fuppes.cfg \
--temp-dir /tmp
else echo "Service fuppes non actif."
fi
echo "-----------------------------------------------------"
date
echo "-----------------------------------------------------"