informatique:systeme:backup:backuppc

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:systeme:backup:backuppc [2012/03/05 15:58] bn8informatique:systeme:backup:backuppc [2021/04/29 09:18] (Version actuelle) – [Ajouter une machine à sauvegarder] bn8
Ligne 1: Ligne 1:
 ====== BackupPC ====== ====== BackupPC ======
  
-Le service **BackupPC** gère les sauvegardes de la machines. Il s'occupe de lancer périodiquement les sauvegardes complètes ou incrémentale ainsi que les restaurations à la demande. Il maintient par ailleurs sont *poolde données qu'il rend accessible au travers de son interface web qui permet aussi le déclenchement de restauration.+Le service **BackupPC** gère les sauvegardes de la machines. Il s'occupe de lancer périodiquement les sauvegardes complètes ou incrémentale ainsi que les restaurations à la demande. Il maintient par ailleurs sont //pool// de données qu'il rend accessible au travers de son interface web qui permet aussi le déclenchement de restauration.
  
 ===== Configuration ===== ===== Configuration =====
Ligne 91: Ligne 91:
 //Procédure :// //Procédure ://
  
-  * Installation de //rsync// : <code>apt-get install rsync</code>+  * Installation de //rsync// : <code bash>apt-get install rsync</code>
   * Configuration du service //rsyncd// avec un partage nommé //slash// correspondant à la racine du système et accessible à l'utilisateur //backup// uniquement depuis le serveur BackupPC en lecture/écriture après authentification :   * Configuration du service //rsyncd// avec un partage nommé //slash// correspondant à la racine du système et accessible à l'utilisateur //backup// uniquement depuis le serveur BackupPC en lecture/écriture après authentification :
  
-    * Créer le fichier ///etc/rsyncd.conf// :<code>uid = root+    * Créer le fichier ///etc/rsyncd.conf// :<code yaml>uid = root
 gid = root gid = root
 [slash] [slash]
Ligne 110: Ligne 110:
     * Protéger le fichier ///etc/rsyncd.secrets// : <code>chmod 600 /etc/rsyncd.secrets</code>     * Protéger le fichier ///etc/rsyncd.secrets// : <code>chmod 600 /etc/rsyncd.secrets</code>
  
-    * Activer le lancement du service BackupPC en éditant le fichier ///etc/default/rsync// et en modifiant les variables comme suit : <code>RSYNC_ENABLE=true+    * Activer le lancement du service BackupPC en éditant le fichier ///etc/default/rsync// et en modifiant les variables comme suit : <code bash>RSYNC_ENABLE=true
 RSYNC_OPTS='--address=[IP d'écoute]'</code> RSYNC_OPTS='--address=[IP d'écoute]'</code>
  
-    * Lancer le service : <code>/etc/init.d/rsync start</code>+    * Lancer le service : <code bash>service rsync start</code>
  
-Le service est ainsi configuré. Les directives de configuration de BackupPC seront alors au minimum : <code>$Conf{XferMethod} = 'rsyncd';+Le service est ainsi configuré. Les directives de configuration de BackupPC seront alors au minimum : <code perl>$Conf{XferMethod} = 'rsyncd';
 $Conf{RsyncShareName} = [ 'slash' ]; $Conf{RsyncShareName} = [ 'slash' ];
 $Conf{RsyncdUserName} = 'backup'; $Conf{RsyncdUserName} = 'backup';
Ligne 128: Ligne 128:
 Variable utiliser dans la configuration : Variable utiliser dans la configuration :
  
-  * **[nom d'utilisateur]** = le nom de l'utilisateur POSIX de la machine utiliser par BackupPC pour s'y connecter+  * **[nom utilisateur]** = le nom de l'utilisateur POSIX de la machine utiliser par BackupPC pour s'y connecter
   * **[fqdn de la machine]** = nom de domaine complet (= //fqdn//) de la machine connue dans la configuration de BackupPC   * **[fqdn de la machine]** = nom de domaine complet (= //fqdn//) de la machine connue dans la configuration de BackupPC
  
 //Procédure :// //Procédure ://
  
-  * Installation de *rsyncet du service *ssh(s'il n'est pas déjà présent) : <code>apt-get install rsync openssh-server</code>+  * Installation de //rsync// et du service //ssh// (s'il n'est pas déjà présent) : <code bash>apt-get install rsync openssh-server</code>
  
   * Vérifier que la directive //PubkeyAuthentication// du fichier de configuration du service //ssh// (///etc/ssh/sshd_config//) soit bien à //yes// (par défaut sous Debian)   * Vérifier que la directive //PubkeyAuthentication// du fichier de configuration du service //ssh// (///etc/ssh/sshd_config//) soit bien à //yes// (par défaut sous Debian)
-  * Autoriser BackupPC à se connecter en ssh sur la machine : <code>su - [nom d'utilisateur]+  * Autoriser BackupPC à se connecter en ssh sur la machine : <code bash>su - [nom utilisateur]
 mkdir $HOME/.ssh mkdir $HOME/.ssh
 cd $HOME/.ssh cd $HOME/.ssh
Ligne 145: Ligne 145:
 <note>Le fichier contenant la liste des clé SSH autorisées à se connecter est par défaut //$HOME/.ssh/authorized_keys//. Ceci est défini dans la configuration du service SSH par la directive //AuthorizedKeysFile// qui vaut alors //%h/.ssh/authorized_keys//.</note> <note>Le fichier contenant la liste des clé SSH autorisées à se connecter est par défaut //$HOME/.ssh/authorized_keys//. Ceci est défini dans la configuration du service SSH par la directive //AuthorizedKeysFile// qui vaut alors //%h/.ssh/authorized_keys//.</note>
  
-  * Il faut ensuite, sur le serveur de sauvegarde, établir un première fois la connexion afin d'accepter la clé du service SSH de la machine : <code>su - backuppc -s /bin/bash +  * Il faut ensuite, sur le serveur de sauvegarde, établir un première fois la connexion afin d'accepter la clé du service SSH de la machine : <code bash>sudo -backuppc ssh [nom utilisateur]@[fqdn de la machine]</code>
-ssh [nom d'utilisateur]@[fqdn de la machine]</code>+
  
   * Accepter la clé du service SSH de la machine lorsqu'on vous le demande. Aucun mot de passe devrai alors vous être demandé. Si ce n'est pas le cas, il y a un problème d'authentification par clé et il faut revoir la configuration de la machine à sauvegarder. La consultation des logs du système pourra vous aider à résoudre le problème (Sous Debian, c'est par défaut le fichier de log ///var/log/auth.log//).   * Accepter la clé du service SSH de la machine lorsqu'on vous le demande. Aucun mot de passe devrai alors vous être demandé. Si ce n'est pas le cas, il y a un problème d'authentification par clé et il faut revoir la configuration de la machine à sauvegarder. La consultation des logs du système pourra vous aider à résoudre le problème (Sous Debian, c'est par défaut le fichier de log ///var/log/auth.log//).
  
-Le service est ainsi configuré. Les directives de configuration de BackupPC seront alors au minimum :<code> $Conf{XferMethod} = 'rsync';+Le service est ainsi configuré. Les directives de configuration de BackupPC seront alors au minimum :<code perl>$Conf{XferMethod} = 'rsync';
 $Conf{RsyncClientPath} = '/usr/bin/rsync'; $Conf{RsyncClientPath} = '/usr/bin/rsync';
-$Conf{RsyncClientCmd} = '$sshPath -l  [nom d'utilisateur] $rsyncPath $argList+'; +$Conf{RsyncClientCmd} = '$sshPath -l  [nom utilisateur] $rsyncPath $argList+'; 
-$Conf{RsyncClientRestoreCmd} = '$sshPath -l [nom d'utilisateur] \+$Conf{RsyncClientRestoreCmd} = '$sshPath -l [nom utilisateur] \
 $host $rsyncPath $argList+'; $host $rsyncPath $argList+';
 $Conf{RsyncShareName} = [ '/' ]; $Conf{RsyncShareName} = [ '/' ];
Ligne 164: Ligne 163:
 };</code> };</code>
  
 +== Partage NFS (via NFS + tar) ==
 +
 +La méthode //NFS + tar// est la plus adaptée pour la sauvegarde d'un partage //NFS// d'une machine ne permettant pas la mise en place d'une sauvegarde via //rsync// en local (Exemple : //appliance propriétaire//). Le principe consiste ici à faire un montage de ce partage //NFS// sur la machine exécutant BackupPC et de faire une sauvegarde via l'outil //tar// en local.
 +
 +Pour cela, il faut commencer par mettre en place le montage du partage //NFS//. Par convention, celui-ci sera effectué dans le dossier ///mnt/[hostname]/[sharename]// :
 +
 +  * Créer ce dossier : <code bash>mkdir /mnt/[hostname]/[sharename]</code>
 +  * Ajouter la ligne de montage automatique dans le fichier ///etc/fstab// : <code>hostname:/path/to/share   /mnt/[hostname]/[sharename]  nfs      _netdev,defaults,auto      0  0</code>
 +  * Monter le partage : <code bash>mount /mnt/[hostname]/[sharename]</code>
 +
 +Les directives de configuration de BackupPC seront alors au minimum : <code perl>$Conf{XferMethod} = 'tar';
 +$Conf{TarShareName} = ['[sharename]'];
 +$Conf{TarClientCmd} = 'sudo $tarPath -c -v -f - -C /mnt/$host/$shareName --totals';
 +$Conf{TarClientRestoreCmd} = 'sudo $tarPath -x -p --numeric-owner --same-owner -v -f -' 
 +                   . ' -C /mnt/$host/$shareName';</code>
 +
 +<note>Il peut être nécessaire d'endosser les droits //root// pour permettre de parcourir et d'accéder à l'ensemble des données du partage. Pour cela :
 +
 +  * Créer le fichier ///etc/sudoers.d/backuppc// : <code>backuppc ALL=NOPASSWD:/bin/tar</code>
 +  * Corriger les droits du fichier précédemment créé : <code bash>chmod 0440 /etc/sudoers.d/backuppc</code>
 +  * Ajouter //sudo// en préfixe des directives BackupPC //TarClientCmd// et //TarClientRestoreCmd// : <code bash>sudo $tarPath [...]</code>
 +</note>
  
 == Machine Microsoft Windows == == Machine Microsoft Windows ==
Ligne 171: Ligne 192:
 <note>Pour que la restauration soit possible, les données doivent être accessible en lecture et en écriture lors de la connexion.</note> <note>Pour que la restauration soit possible, les données doivent être accessible en lecture et en écriture lors de la connexion.</note>
  
-Les directives de configuration de BackupPC seront alors au minimum : <code>$Conf{XferMethod} = 'smb';+Les directives de configuration de BackupPC seront alors au minimum : <code perl>$Conf{XferMethod} = 'smb';
 $Conf{SmbShareName} = [ '[nom du partage]' ]; $Conf{SmbShareName} = [ '[nom du partage]' ];
-$Conf{SmbShareUserName} = '[nom d'utilisateur de connexion]';+$Conf{SmbShareUserName} = '[nom utilisateur de connexion]';
 $Conf{SmbSharePasswd} = '[mot de passe de connexion]';</code> $Conf{SmbSharePasswd} = '[mot de passe de connexion]';</code>
 +
 +== NAS Synology ==
 +
 +La méthode //rsync + ssh// est la plus adaptée pour un NAS Synology. Pour permettre la connexion de BackupPC au NAS, il vous faut :
 +  * activer le service SSH sur le NAS :
 +    * Se connecter à l'interface web du NAS avec un compte ayant des droits admins
 +    * Dans le //Panneau de configuration//, aller dans //Terminal & SNMP//
 +    * Cocher la case //Activer le service SSH// et cliquer sur le bouton //Appliquer//
 +  * activer l'authentification par clé SSH sur le NAS :
 +    * connecter vous en SSH au NAS avec un compte ayant des droits admins
 +    * passer en tant que l'utilisateur //root// : <code bash>sudo su -</code>
 +    * Éditer le fichier ''/etc/ssh/sshd_config'' et décomenter les lignes suivantes : <code>PubkeyAuthentication yes
 +AuthorizedKeysFile      .ssh/authorized_keys</code>
 +    * Autoriser BackupPC à se connecter au NAS en tant que //root// :
 +      * créer le dossier ''/root/.ssh''
 +      * créer le fichier ''/root/.ssh/authorized_keys'' et y déposer la clé publique SSH de BackupPC
 +
 +Le reste de procédure est équivalent à celle pour une machine GNU/Linux via la méthode //rsync + ssh//. Les volumes de données du NAS se trouvent dans ''/volumeX''. On pourra sauvegarder spécifiquement certains volumes/partages via le paramètre ''$Conf{BackupFilesOnly}'', par exemple :
 +<code perl>$Conf{BackupFilesOnly} = ['/volume1', '/volume2/partage1'];</code>
 +
 +<note warning>Le compte //admin// doit être actif pour que les sauvegardes via le compte //root// UNIX fonctionne !</note>
  
  
Ligne 207: Ligne 249:
   * recharger la configuration du serveur en allant dans //Serveur// puis //Options d'administration// et cliquer sur le bouton //Recharger//   * recharger la configuration du serveur en allant dans //Serveur// puis //Options d'administration// et cliquer sur le bouton //Recharger//
   * configurer les sauvegardes du serveur en allant dans //Hôtes// puis //Modifier la configuration//   * configurer les sauvegardes du serveur en allant dans //Hôtes// puis //Modifier la configuration//
- 
- 
 ==== Modifier la configuration d'une machine ==== ==== Modifier la configuration d'une machine ====
  
Ligne 313: Ligne 353:
 ==== Supprimer une sauvegarde d'une machine ==== ==== Supprimer une sauvegarde d'une machine ====
  
-Il existe un script pour cela **BackupPcDeleteBackups**. Il faut l'installé en complément sur le serveur. Il permet de supprimé une ou plusieurs sauvegardes d'une machine. Il est recommandé de l'installer dans ///usr/local/bin/BackupPcDeleteBackups//.+Il existe un script pour cela **BackupPcDeleteBackups** (téléchargeable [[https://blog.hbis.fr/2012/07/04/backuppc-delete_and_cleanup/|ici]]). Il faut l'installé en complément sur le serveur. Il permet de supprimé une ou plusieurs sauvegardes d'une machine. Il est recommandé de l'installer dans ///usr/local/bin/BackupPcDeleteBackups//.
  
  
Ligne 369: Ligne 409:
   su - backuppc   su - backuppc
   /usr/share/backuppc/bin/BackupPC_nightly 0 255   /usr/share/backuppc/bin/BackupPC_nightly 0 255
 +
 +==== Sauvegardes complètes uniquement les dimanches ====
 +
 +Pour être certain que les sauvegardes complètes est lieu uniquement le dimanche, et du fait que //BackupPC// ne dispose pas d'une différenciation de période de //blackout// spécifique entre sauvegarde complète et sauvegarde incrémentale, il est nécessaire de contourner le fonctionnement normal de la manière suivante :
 +
 +  * Configurer la périodicité des sauvegardes complète à plus de 7 jours : <code>$Conf{FullPeriod} = '9.97';</code>
 +
 +<note>Le choix de la valeur //-1// pour la périodicité des sauvegardes complètes pourrait être un choix tentant, cependant elle équivaut à une désactivation complète des sauvegardes de la machine, y compris pour les sauvegardes incrémentales. Ce choix peut convenir si on souhaite avoir que des sauvegardes complètes le dimanche et aucune sauvegarde incrémentale le reste du temps.</note>
 +
 +  * Exclure toute la journée du dimanche pour la sauvegarde complète en plus de votre période d'exclusion du reste de la semaine : <code>$Conf{BlackoutPeriods} = [
 +  {
 +    'hourEnd' => '23.9',
 +    'weekDays' => [
 +      '1',
 +      '2',
 +      '3',
 +      '4',
 +      '5',
 +      '6'
 +    ],
 +    'hourBegin' => '6'
 +  },
 +  {
 +    'hourEnd' => '23.9',
 +    'weekDays' => [
 +      '0'
 +    ],
 +    'hourBegin' => '0'
 +  }
 +];</code>
 +  * Utiliser la suite de scripts [[http://git.zionetrix.net/backuppc-run-backup|backuppc-run-backup]] pour planifier via une tâche //cron// la sauvegarde complète des machines tout les dimanches : <code>cd /usr/local/src
 +git clone http://git.zionetrix.net/git/backuppc-run-backup
 +ln -s /usr/local/src/backuppc-run-backup/run-backup /usr/local/sbin/
 +ln -s /usr/local/src/backuppc-run-backup/run-all-backup /usr/local/sbin/
 +echo -e "# BackupPC : Full backup every Sunday\n1 0 * * 0 root /usr/local/sbin/run-all-backup" > /etc/cron.d/backuppc-full-backup</code>
 +
 +==== Export des dernières sauvegardes sur disques USB chiffrés ====
 +
 +Voir : https://gogs.zionetrix.net/bn8/backuppcExportOnUsbDisk
 +
 +==== Les graphiques ne sont pas affichés sur la page d'accueil ====
 +
 +Il suffit d'installer manuellement le paquet Debian //rrdtool//. Il faudra également attendre qu'un job //Nightly// se termine pour que le fichier ///var/lib/backuppc/log/pool.rrd// soit créé et alimenté afin de permettre l'affichage des graphiques. Si vous ne voulez pas attendre, vous pouvez également utiliser la commande suivante : <code>~# /usr/bin/rrdtool create /var/lib/backuppc/log/pool.rrd --step 86400 DS:ckb:GAUGE:172800:0:U RRA:AVERAGE:0.5:1:1400
 +~# chown backuppc: /var/lib/backuppc/log/pool.rrd
 +~# chmod 640 /var/lib/backuppc/log/pool.rrd</code>
 +<note important>La ligne //rrdtool create// est issu du fichier ///usr/share/backuppc/bin/BackupPC// (version //3.2.1//). N’hésitez pas a vérifier que celle-ci n'est pas changé suite à une mise à jour.</note>
 +
 +==== Désactiver le ping sur une machine ====
 +
 +Pour une machine ne répondant pas au ping, il est possible de le //"désactiver"// à l'aide du paramètre suivant : <code perl>$Conf{PingPath} = '/bin/echo';</code>
  
  • informatique/systeme/backup/backuppc.1330963098.txt.gz
  • Dernière modification : 2012/03/05 15:58
  • de bn8