Outils pour utilisateurs

Outils du site


backuppc

BackupPC

Mise à jour 2011

Client

Mise en place d'un serveur rsync. On peut notamment utiliser cwrsync

Serveur

Installation via apt-get. Noter le mot de passe généré automatiquement pendant l'installation (peN4e00f), le fichier étant /etc/backuppc/htpasswd.

Configuration serveur

Tout se fait via l'interface web, y compris l'ajout de clients !

Piste à explorer

Voir les effets (durée et charge) des sauvegardes complètes. D'après la doc, étant faites via rsync, elles ne sont pas réellement complètes.

Voir la possibilité pour un client d'avoir un accès simplifié à l'interface, afin de lui permettre de sauvegarder manuellement son poste. ⇒ Ok, il suffit de lui créer un compte apache.

Voir les possibilités de restauration.

Biblio

Résultats des tests effectués:

L'utilisation de smb comme mode de transfert est déconseillé, les sauvegardes incrémentales ne sont pas précises ( notamment au niveau des suppression de fichier ).

L'utilisation de rsync est à privilégier, même si c'est un peu plus de boulot au niveau du poste client

Prérequis

Installation

apt-get install [[:backuppc|backuppc]] libfile-rsyncp-perl [[:apache|apache]]2-utils 

changer le mot de passe de l'utilisateur:

htpasswd /etc/backuppc/htpasswd[[:backuppc| ]]

supprimer la ligne “Include /etc/backuppc/apache.conf” dans /etc/apache/httpd.conf

Créer un vhost dédié, vérifier les contrôles d'accès

Configurer le serveur:

Elle se fait désormais (2011/2013) exclusivement via l'interface web

Outlook

voir [\[http://www.microsoft.com/downloads/details.aspx?displaylang=fr&FamilyID=8b081f3a-b7d0-4b16-b8af-5a6322f4fd01 | pfbackup\]]

Remarques: 'pfbackup sucks parce que ce n'est pas automatique.

Tâches de tous les jours.

Sauvegarder un repertoire supplémentaire:

  • sur le client ajouter la section correspondant à la configuration rsyncd.conf. il n'y a pas besoin de relancer rsyncd:
[NewRep]
   path = /data/newRep
   comment = nouveau repertoire à sauvegarder
  • sur le serveur, dans le fichier ~backuppc/pc/HOST/config.pl, rajouter ' <code> NewRep </code> ' à la variable <code> $Conf{RsyncShareName} </code>

Forcer //Backupc// à travailler le jour

par défaut, backuppc ne sauvegarde une machine que pendant les heures de fermeture du bureau.

Pourle faire tourner en permanence, jouer sur les variables suivantes:

mettre la variable

$Conf{BlackoutGoodCnt}

à une valeur négative

Troubleshoooting

Quand ça ne marche pas, vérifier les points suivants:

  • le démon rsync tourne et écoute sur la bonne adresse
  • le serveur est autorisé à se connecter à rsync ( directive host allow dans rsyncd.conf )
  • le couple user + mot de passe dans rsyncd.secrets et host/config.pl concorde
  • l'utilisateur backuppc est propriétaire de son homedir(
chown -R [[:backuppc|backuppc]].[[:backuppc|backuppc]] ~backuppc

)

  • si les sauvegardes échoue avec le message: “aborted by signal=ALRM”, augmenter la valeur de $Conf{ClientTimeout} dans le fichier de conf. C'est lié à la sauvegarde de gros fichier, sur des médias, ou à travers des liaisons pas très rapide.

Restauration

La restauration par zip semble ne pas fonctionner.

De même la restauration tar semble donner une archive corrompue.

Cependant, quelques tests apparemment concluants ont été effectués ( restauration ok, malgré des erreurs de tar sf en fin de fichier )

La restauration par rsync fonctionne très bien. Il faut mettre la variable read-only à false dans le fichier rsyncd.conf du client.

Ce type de retauration réécrit les fichiers choisis à leur emplacement d'origine. Il est possible de choisir un répertoire de destination différent.

Exemple de restauration par rsync, suite à la réinstallation d'un poste:

  • installation du nouveauposte
  • configuration des sauvegardes sur ceposte
  • restauration des données directement sur leposte
  • vérification

Autre possibilité de restauration:

sur le serveur, exécuter la commande /usr/share/backuppc/bin/BackupPC_tarCreate:

/usr/share/backuppc/bin/BackupPC_tarCreate -h patricia -n 302 -s sauvegardes "/Local Settings/Application Data/Microsoft/Outlook" > patricia.tar
  • -h est le nom de le machine sauvegardée
  • -n est le numéro de sauvegarde
  • -s est le nom du partage sur le poste client
  • “/Local…” est le répertoire à sauvegarder

ne pas oublier de rediriger la sortie standard vers un fichier.

Vérifier l'âge des sauvegardes

Le script suivant permet de connaître l'âge de la dernière sauvegarde, qu'elle soit incrémentale ou complète. Il lit pour cela le fichier backupdir /pc/backups.

#! /bin/bash
now=$(date "+%s" )

for host in /srv/backuppc/pc/* ;do
   echo -ne "${host##*/}: " 
   age=$(tail -n1 ${host}/backups | awk '{print $4}')
   let "diff=$now-$age"
   let "diff/=24"
   let "diff/=3600"                                                                                                            
   echo $diff
done

À noter l'existence du script /usr/share/backuppc/bin/BackupPC_serverMesg qui permet de “communiquer” avec le serveur. Les arguments status host(nom machine) permet notamment de récupérer l'état des sauvegardes pour la machine donnée. Mais le résulat est difficilement exploitable.

Vérifier l'âge des sauvegardes avec nagios

Avec nagios et nrpe, à l'aide d'une version modifiée du script ci-dessus, on peut contrôler l'âge des sauvegardes.

Rajouter une directive

command[check_backuppc]=/etc/nagios/backuppc_check_age.sh 5 10

dans /etc/nagios/nrpe.cfg. Les 2 arguments de ce script sont:

  • âge en jour d'une sauvegarde, au delà duquel on génère un WARNING
  • âge en jour d'une sauvegarde, au delà duquel on génère un CRITICAL

Écrire le script de vérification /etc/nagios/backuppc_check_age.sh :

#! /bin/bash
now=$(date "+%s" )
SERVICE="backups"
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4
warning_host=()
critical_host=()
if [ $# -ne 2 ] ; then
   echo -e "Usage: $0 warning_age critical_age\n\t age in days"
   exit $STATE_UNKNOWN
fi

w=$1
c=$2

if [ $w -gt $c ] ; then
   echo "warning_age should be lower than critical_age"
   exit $STATE_UNKNOWN
fi

for host in /srv/backuppc/pc/* ;do
   hostname="${host##*/}"
   age=$(tail -n1 ${host}/backups | awk '{print $4}')
   let "diff=$now-$age"
   let "diff/=24"
   let "diff/=3600"
   if [ $diff -gt $c ] ; then
      critical_host=("${critical_host[@]}" "$hostname")
      continue
   fi
   if [ $diff -gt $w ] ; then
      warning_host=("${warning_host[@]}" "$hostname")
   fi
done                                                                  

if [ ${#critical_host[@]} -gt 0 ] ; then
   echo "${SERVICE} CRITICAL - Backups too old for hosts: $critical_host"
   exit $STATE_CRITICAL
   fi
if [ ${#warning_host[@]} -gt 0 ] ; then
   echo "${SERVICE} WARNING - Backups too old for hosts: $warning_host"
   exit $STATE_WARNING
   fi
echo ${SERVICE} OK - backups OK
exit $STATE_OK

s'assurer que le script fonctionne en tant qu'utilisateur nagios. Il faudra peut-être donner les droits de lecture à cet utilisateur sur le répertoire des sauvegardes

Sur le serveur nagios, rajouter le service ci-dessous:

define service{
        host_name               tourmaline
        service_description     Etat des sauvegardes
        check_command           check_nrpe_1arg!check_backuppc
        use                     generic-service
}

Relancer les services nrpe et nagios respectivement sur le serveur backuppc et le serveurnagios

Ligne de commande

Lancer une sauvegarde en ligne de commande :

/usr/share/BackupPC/bin/BackupPC_serverMesg backup HOST HOSTIP USER  1(full)/0(incrementale)

# vim: set filetype=dokuwiki:

backuppc.txt · Dernière modification: 2015/10/06 20:06 (modification externe)