Outils pour utilisateurs

Outils du site


backuppc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

backuppc [2015/10/06 20:06] (Version actuelle)
Ligne 1: Ligne 1:
 +
 +=====  BackupPC =====
 +==== Mise à jour 2011 ====
 +
 +==== Client ====
 +
 +Mise en place d'un serveur //​[[:​rsync]]//​. On peut notamment utiliser //​[[:​rsync|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|clients]] !
 +
 +==== Piste à explorer ====
 +
 +
 +
 +Voir les effets (durée et charge) des sauvegardes complètes. D'​après la doc, étant faites via [[:​rsync|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 [[:​clients:​crealys:​poste|poste]]. => Ok, il suffit de lui créer un //compte// [[:​apache|apache]].
 +
 +
 +
 +Voir les possibilités de restauration.
 +
 +
 +
 +
 +
 + ​==== ​ Biblio ====
 +
 +[http://​moderndoorbells.com/​backuppc/#​introduction [[:​backuppc|backuppc]] on Suse\]
 +
 + ​==== ​ 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|rsync]]** est à privilégier,​ même si c'est un peu plus de boulot au niveau du [[:​clients:​crealys:​poste|poste]] client
 +
 + ​==== ​ Prérequis ====
 +
 +  * [[Apache]]
 +
 + ​==== ​ Installation ====
 +
 +<​code>​
 +apt-get install [[:​backuppc|backuppc]] libfile-rsyncp-perl [[:​apache|apache]]2-utils ​
 +</​code>​
 +
 +changer le mot de passe de l'​utilisateur:​
 +
 +<​code>​
 +htpasswd /​etc/​backuppc/​htpasswd[[:​backuppc| ]]
 +</​code>​
 +
 +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:
 +
 +  ​
 +
 +<​code>​
 +[NewRep]
 +   path = /​data/​newRep
 +   ​comment = nouveau repertoire à sauvegarder
 +</​code>​
 +
 +  * 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|backuppc]] ne sauvegarde une machine que pendant les heures de fermeture du [[:​clients:​bureau|bureau]].
 +
 +Pourle faire tourner en permanence, jouer sur les variables suivantes:
 +
 +mettre la variable  ​
 +
 +<​code>​
 +$Conf{BlackoutGoodCnt}
 +</​code>​
 +
 + à 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|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(  ​
 +<​code>​
 +chown -R [[:​backuppc|backuppc]].[[:​backuppc|backuppc]] ~backuppc
 +</​code>​
 +
 + )
 +  * 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|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|rsync]],​ suite à la réinstallation d'un [[:​clients:​crealys:​poste|poste]]:​
 +
 +  * installation du nouveau[[:​clients:​crealys:​poste| ]]
 +  * configuration des sauvegardes sur ce[[:​clients:​crealys:​poste| ]]
 +  * restauration des données directement sur le[[:​clients:​crealys:​poste| ]]
 +  * vérification
 +
 +Autre possibilité de restauration:​
 +
 +sur le serveur, exécuter la commande /​usr/​share/​backuppc/​bin/​BackupPC_tarCreate:​
 +
 +<​code>​
 +/​usr/​share/​backuppc/​bin/​BackupPC_tarCreate -h patricia -n 302 -s sauvegardes "/​Local Settings/​Application Data/​Microsoft/​Outlook"​ > patricia.tar
 +</​code>​
 +
 +  * -h est le nom de le machine sauvegardée
 +  * -n est le numéro de sauvegarde
 +  * -s est le nom du [[:​clients:​sgmo:​partage|partage]] sur le [[:​clients:​crealys:​poste|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.
 +
 +<​code>​
 +#! /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
 +</​code>​
 +
 +À 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|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 ​
 +<​code>​command[check_backuppc]=/​etc/​nagios/​backuppc_check_age.sh 5 10</​code>​
 +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 //:
 +<​code>​
 +#! /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
 +</​code>​
 +
 +**s'​assurer que le script fonctionne en tant qu'​utilisateur [[:​nagios|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:
 +<​code>​
 +define service{
 +        host_name ​              ​tourmaline
 +        service_description ​    Etat des sauvegardes
 +        check_command ​          ​check_nrpe_1arg!check_backuppc
 +        use                     ​generic-service
 +}
 +</​code>​
 +
 +Relancer les services nrpe et [[:​nagios|nagios]] respectivement sur le serveur [[:​backuppc|backuppc]] et le serveur[[:​nagios| ]]
 +
 +==== Ligne de commande ====
 +
 +Lancer une sauvegarde en ligne de commande :
 +<​code>​
 +/​usr/​share/​BackupPC/​bin/​BackupPC_serverMesg backup HOST HOSTIP USER  1(full)/​0(incrementale)
 +</​code>​
 +# vim: set filetype=dokuwiki:​
  
backuppc.txt · Dernière modification: 2015/10/06 20:06 (modification externe)