12
novembre 2019

Notification de sauvegarde avec BackupPC

Notification de sauvegarde avec BackupPC

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.

Administrateur système de métier mais surtout curieux de découvrir de nouvelles technos très orientées DIY. A mes heures perdues je fais de la photo avec toujours une petite envie d'intégrer des DIY sous forme de timelaps à base de raspberry.

Écrire un commentaire

Quelle est la deuxième lettre du mot cevzb ? :

Notification de sauvegarde avec BackupPC - Philippe Maladjian - Péripéties bucoliques d'un administrateur systèmes au royaume de la virtualisation, du stockage et accessoirement photographe à ses heures perdues