I‐ Installation de Backuppc : Procédure à zéro sur une debian etch

### Voir installation d'un serveur type AUF:
1- Les outils de base : ssh, rsync
  aptitude install ssh rsync

2- Le Serveur WEB apache2 et de Backuppc

  aptitude install apache2 backuppc
  cp /etc/backuppc/apache.conf /etc/apache2/conf.d/backuppc.conf
  /etc/init.d/apache2 start
  /etc/init.d/backuppc start


3- Modifier les mots de passe de l'utilisateur backuppc pour l'accès a l'interface web d'administration:

 htpasswd -b /etc/backuppc/htpasswd backuppc <mot de passe>

II‐ Procedure de configuration et de sauvegarde

Note: On backup tout sauf des répertoires particuliers (Backuppc gère les doublons), on met une liste à exclure (les .mp3 ....) , on sauvegarde les serveurs la nuit

II -1- Le fichier de configuration config.pl du serveur:

Explication du fichier de config : /etc/backuppc/config.pl

$Conf{ServerHost} = 'IP'; // l’adresse ip du serveur ou le nom du serveur de sauvegarde.
$Conf{WakeupSchedule} = [13]; // pour lancer la sauvegarde à 13h l’heure ou par exemple
$Conf{WakeupSchedule} = [1..24]; // toutes les heures de la journée
$Conf{MaxBackups} = 4; // nombre maximum de sauvegardes sumultanée à effectuer
$Conf{CompressLevel} = 3; // taux de compression qui peut prendre des valeurs entre 0 et 9 (0 pour désactiver la compression). 3 est la valeur recommandée pour avoir une bonne compression sans trop surcharger le processeur.
$Conf{MaxOldLogFiles} = 28; // L'âge max des logs (en jours)
$Conf{DfMaxUsagePct} = 92; // à 92% de saturation de disque il donne une notification de saturation du disque.
$Conf{BackupPCUser} = 'backuppc'  // le nom de l’utilisateur qui à l’accès de faire le backup dans le serveur.
$Conf{FullPeriod} = 13.97; // full backup par exemple toutes les 2 semaines (par PC )
$Conf{IncrPeriod} = 0.97; // Incrémental backup tous les jours
$Conf{FullKeepCnt} = 6; // 6 backup complets
$Conf{FullAgeMax} = 93; // Age maximale des backup-complet = 93 jours par exemple
$Conf{FullKeepCntMin} = 1; // Garder au minimum un backup-complet, même s'il est plus vieux que 93 jours.
$Conf{IncrKeepCnt} = 15; // On garde par exemple 15 sauvegardes incrémentales, ce qui nous fait 15 jours.
$Conf{IncrAgeMax} = 30; // 30 jours max pour l'âge des sauvegardes incrémentales.
$Conf{IncrKeepCntMin} = 3; // On garde 3 sauvegardes incrémentales quelques soient leur âge.

// de 7:30 AM a 6 :30 PM ,,, Pour ne pas faire de backup durant cette periode du lundi au Vendredi
$Conf{BlackoutPeriods} = [
{
hourBegin => 7.5,
hourEnd => 18.5,
weekDays => [1, 2, 3, 4, 5],
},
];
$Conf{XferMethod} = 'rsync'; // La méthode de sauvegarde par défaut
$Conf{PingMaxMsec} = 999; // Délai maximum pour un ping, avant de considérer que le PC n'est pas joignable et donc ne peut se faire un backup.
$Conf{Language} = 'fr' // l'interface Web et les messages en français ou « en » pour l'anglais.
$Conf{EMailNotifyMinDays} = 2.5;''' : période minimale durant laquelle un utilisateur ne recevra pas de mails. La valeur par défaut (2.5) signifie que l'utilisateur ne recevra qu'un message tous les trois jours au maximum
$Conf{EMailFromUserName} = 'backuppc';''' : adresse de l'expéditeur. Les emails envoyés prendront en champ from la valeur indiquée ici. Il est possible d'indiquer le nom d'utilisateur ou l'adresse email complète en fonction de la configuration de votre serveur mail.
$Conf{EMailAdminUserName} = ' admin-backup@backup.domain.com ';''' : adresse email de l'administrateur du serveur de sauvegarde
$Conf{EMailUserDestDomain} = '@domain.com';''' : domaine des utilisateurs. Les emails seront envoyés à l'adresse {utilisateur}@domain.com
### la configuration de l'interface CGI :
$Conf{CgiAdminUserGroup} = '';''''''' : groupe des utilisateurs administrateurs. Le groupe doit exister dans le fichier .htpasswd
$Conf{CgiAdminUsers} = 'admin utilisateur1';''' : utilisateurs administrateurs. Chaque utilisateur doit exister dans le fichier .htpasswd
$Conf{CgiURL} = 'http://backup.domain.com/cgi-bin/BackupPC_Admin';''' : adresse HTTP du script CGI
$Conf{Language} = 'fr';''' : langue de l'interface CGI
$Conf{CgiDateFormatMMDD} = 0;''' : format de date. 0 pour le format internationnal (JJ/MM) et 1 pour le format US (MM/JJ)

// Exclusion de la musique et de la video , tmp ...
$Conf{BackupFilesExclude} = {
'/' => [ '/dev', '/proc', '/sys', '/mnt', '/media',
'/var/cache/apt/archives', '/var/spool/squid',
'/.backup', '/volatil', '/export/.tampon',
'*.avi', '*.AVI', '*.mpg', '*.MPG', '*.mov', '*.MOV',
'*.mp3', '*.MP3', '*.wav', '*.WAV',
'*.wmv', '*.WMV', '*.wma', '*.WMA',
'*.nrg', '*.NRG', '*.dvf', '*.DVF',
'*.bmp', '*.BMP', '*.tif', '*.TIF', '*.tiff', '*.TIFF',
'*.mso', '*.MSO', '*.dbx', '*.DBX', '*.exe', '*.EXE',
'*.gif', '*.GIF', '*.jpg', '*.JPG', '*.png', '*.PNG',
'*.iso', '*.ISO',
'*.dat', '*.DAT',
],
};

II-2- Sauvegarder le client pc-pascal

il faut ajouter dans /etc/backuppc/hosts la ligne

pc-pascal                      0            backuppc   #### 0 pour adresse statique

- Depuis l'interface graphique lancer une sauvegarde complète afin que le logiciel crée le répertoire de sauvegarde /var/lib/backuppc/pc/pc-pascal

- Sans doute, la sauvegarde échoue puisque la config du client n'existe toujours pas mais l'étape précédente crée le répertoire pc-pascal dans /var/lib/backuppc/pc/ du serveur (sinon crée le manuellement)

II-3- parametrer la config du client sur le serveur

On doit ensuite ajouter dans ce répertoire un fichier 'config.pl' qui contient les options suivantes:

$Conf{XferMethod} = 'rsync';
$Conf{RsyncClientPath} = '/usr/bin/rsync';
$Conf{RsyncClientCmd} = '$sshPath -l root $host $rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$sshPath -l root $host $rsyncPath $argList+';
$Conf{RsyncShareName} = ['/','/home']; #### D'apres le client pc-pascal qui contient deux partitions (Ceci est un exemple)
$Conf{RsyncArgs} = [
      '--numeric-ids',
      '--perms',
      '--owner',
      '--group',
      '--devices',
      '--links',
      '--specials',
      '--times',
      '--block-size=2048',
      '--recursive',
      '--one-file-system',
            ];
    $Conf{RsyncRestoreArgs} = [
      "--numeric-ids",
      "--perms",
      "--owner",
      "--group",
      "--devices",
      "--links",
      "--times",
      "--block-size=2048",
      "--relative",
      "--ignore-times",
      "--recursive",
      "--one-file-system",
      ];
     $Conf{RsyncLogLevel} = 1;

NB: l'option '--specials' donne la possibilité a rsync de copier des fichiers spéciaux des "non-device"

II- 4- Les cles ssh

Copions la clé ssh de l'utilisateur backuppc du serveur vers le client:

Première étape, si ce n'est pas déjà fait : créer les cl's de l'utilisateur backuppc sur le serveur de sauvegarde :

su backuppc
ssh-keygen -t dsa
cd /var/lib/backuppc/.ssh

Copier les cles sur le client

ssh-copy-id - i id_dsa.pub root@pc-pascal

Essayons à présent de nous connecter, depuis le serveur de sauvegarde (utilisateur backuppc) sur le client:

ssh root@pc-pascal

Finalement, lancer une sauvegarde complete ....

III- Restauration avec BackupPC

Apres un crash disque si on a une sauvegarde complète, on doit etre capable de restaurer un client très facilement:

Après la restauration :

Sur le client , chrooter le /mnt/target

# chroot /mnt/target /bin/bash

Installer Grub: # grub-install hd0 (ou hd0 c’est le MBR du premier disque dur)

Sinon il faut on utilise la commande :

# find /boot/grub/stage1 alors elle retourne par exemple root(hd0,0) donc le dernier (0) c’est la première partition, si elle retourne root(hd0,2) le (2) indique la troisièmes partition.

Alors on exécute les commandes suivantes :

#grub root (hd0,?) #setup (hd0)

Si le Grub donne une erreur donc on peut essayer la commande suivante: grub-install --root-directory=/boot (hd0)

IV‐ Particularités

V-1 pour les serveurs virtuels (OpenVZ)

IV -2 Pour les systemes en LVM

La sauvegarde est pareille,Verifier l'existance du /boot au niveau de la sauvegarde dans le config.pl du client $Conf{RsyncShareName} = ['/','/home','/boot']; Pour la restauration complète du système en LVM on doit utiliser un RescueCD 1.1.4 qui support la création des partions LVM (Kernel 2.6..) Crée les partitions /boot en EXT3 et les autres partions LVM, les VL et les VG Crée un répertoire /mnt/target/boot et /mnt/target/home pour pouvoir restaurer les partition /boot et /home en tappant:

IV -3 Pour la sauvegarde d'un poste fixe ou portable

IV - 4 Limiter l'accès de l'utilisateur backuppc a rsync uniquement au niveau du client

ZMO/Projets/BackupPC (dernière édition le 2009-02-17 21:56:45 par JeanChristopheAndré)