BackupPc est un outils de sauvegarde puissant et assez souple pour couvrir un large périmètre fonctionnel. Mais il est pauvre en capacité à communiquer avec l'exterieur quand il s'agit de notifier l'état des sauvegardes. Pour remédier à ce problème je me suis basé sur BackupPC_report et j'ai ajouté un script à lancer en post backup pour recevoir tout ça par mail.
Avant de lancer BackupPC_report il faut paramétrer votre installation de BackupPC en renseignant soit dans la configuration générale soit au niveau de l'hôte les variables suivantes :
- EMailAdminUserName : nom d'utilisateur qui est en charge de gérer les sauvegardes;
- EMailUserDestDomain : nom de domaine de l'utilisateur.
Par exemple pour superbackupadmin@societe.sba
- EMailAdminUserName : superbackupadmin
- EMailUserDestDomain : @societe.sba
Maintenant la commande post backup :
- DumpPostUserCmd : /usr/share/BackupPC/bin/BackupPC_NotifyByEmail $client $xferOK
l'important est la variable $client, elle est renvoyé par BackupPc et correspond au nom de la machine à sauvegarder lorsque vous créez l'hôte. $xferOK renvoie le status de la sauvegarde, 1 quand tout est ok et 0 quand il y a une erreur.
Maintenant rendez-vous dans le dossier /usr/share/BackupPC/bin/ de votre serveur BackupPC et créer un fichier nommé BackupPC_NotifyByEmail. Coller le contenue ci-dessous.
#!/bin/bash if [ ! -z "${1}" -a ! -z "${2}" ]
then
FILE_CONFIG="/etc/BackupPC/config.pl"
DIR_CONFIG="/etc/BackupPC"
CLIENT=${1}
STATUS=${2}
MAIL=`grep 'Conf{EMailAdminUserName}' ${DIR_CONFIG}/pc/${CLIENT}.pl | cut -d"=" -f2 | tr -d "'" | tr -d ";" | tr -d " "`
if [ -z ${MAIL} ]
then
MAIL=`grep 'Conf{EMailAdminUserName}' ${FILE_CONFIG} | cut -d"=" -f2 | tr -d "'" | tr -d ";" | tr -d " "`
fi
DOMAIN=`grep 'Conf{EMailUserDestDomain}' ${DIR_CONFIG}/pc/${CLIENT}.pl | cut -d"=" -f2 | tr -d "'" | tr -d ";" | tr -d " "`
if [ -z ${DOMAIN} ]
then
DOMAIN=`grep 'Conf{EMailUserDestDomain}' ${FILE_CONFIG} | cut -d"=" -f2 | tr -d "'" | tr -d ";" | tr -d " "`
fi
/usr/bin/perl /usr/share/BackupPC/bin/BackupPC_report -a ${CLIENT} > /tmp/backup.log
if [ ${STATUS} -eq 1 ]
then
SUBJECT="[BackupPc] rapport de sauvegarde ${CLIENT} ok"
else
SUBJECT="[BackupPc] rapport de sauvegarde ${CLIENT} erreur"
fi
mail -s "${SUBJECT}" ${MAIL}${DOMAIN} < /tmp/backup.log
else
echo "Renseigner le nom de la machine à sauvegarde"
exit 1
fi
exit 0
Vous avez juste à modifier les variables FILE_CONFIG et DIR_CONFIG pour les adapter à votre serveur.
Pour tester le script vous n'avez pas besoin de le faire depuis BackupPC, vous pouvez le lancer manuellement. Connectez-vous avec l'utilisateur backuppc (ou celui défini sur votre serveur pour faire tourner le process BackupPc) et lancer la commande :
#sh /usr/share/BackupPC/bin/BackupPC_NotifyByMail monserveur
Et voila, BackupPC devient un peu plus bavard.