informatique:systeme:backup: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 pool de données qu'il rend accessible au travers de son interface web qui permet aussi le déclenchement de restauration.

La configuration du service est stockée dans le dossier /etc/backuppc/*. Le fichier config.pl contient la configuration générale du service. Ce fichier contient également la configuration par défaut de la sauvegarde des machines gérées. Chaque machine dispose par ailleurs d'un fichier de configuration et qui porte son nom suffixer par “*.pl*”. Les variables de configuration définies dans ces fichiers remplacent les valeurs par défaut définies dans la configuration générale.

Tout les fichiers de configuration de BackupPC doivent respecter la syntaxe du langage Perl. Par ailleurs, tous ces fichiers doivent appartenir à l'utilisateur backuppc et au groupe www-data. Le propriétaire de ces fichiers doit y avoir accès en lecture et en écriture. Le groupe propriétaire, quand à lui, doit y avoir accès en lecture uniquement.

Le fichier hosts contient la déclaration des machines clientes ainsi que les personnes qui auront accès aux sauvegardes de ces machines. Le propriétaire des machines doit systématiquement être backuppc pour que les alertes soient reçues par les administrateurs du système.

L'interface web de BackupPC est accessible en générale au travers du service HTTP Apache. La configuration du service HTTP Apache se situe dans le dossier /etc/apache2 et plus particulièrement dans le fichier /etc/apache2/backuppc. C'est un lien logique vers le fichier /etc/backuppc/apache.conf.

L'authentification des utilisateurs se connectant à l'interface de BackupPC est confié au serveur web.

Un bug ouvert chez Debian sur le paquet libarchive-zip-perl empêche actuellement le téléchargement d'une archive zip compressée depuis l'interface. Il s'agit du bug 600848. Un patch a été proposé mais une solution moins intrusive est en attente.

BackupPC exploite ses données de manière autonome et les rend accessibles au travers d'outils. Il est cependant intéressant de savoir où sont stockés ces données. Le répertoire les contenant toutes est /var/lib/backuppc dans lequel on retrouve les sous-répertoires suivant :

  • cpool : contient les fichiers sauvegardés compressés triés en fonction de leur hash
  • pool : contient les fichiers sauvegardés non-compressés triés en fonction de leur hash
  • log : contient les logs du fonctionnement général du service ainsi que la socket de communication avec le service
  • trash : corbeille du service qu'il vide régulièrement
  • pc : contient un sous-répertoire par machine dans lequel on retrouve principalement :
  • le fichier backups s'apparentant à une base de données concernant les sauvegardes disponibles de cette machine
  • les logs des sauvegardes de cette machine
  • un certain nombre de dossiers dont le nom est un chiffre entier et qui correspondent aux sauvegardes de cette machine. Chacun de ces dossiers contient les données de la machine au moment de la sauvegarde. Ces fichiers sont en réalité des liens durs vers les fichiers contenus dans les dossiers cpool et pool
  • un dossier new visible uniquement lorsqu'une sauvegarde est en cours. Il sera ensuite renommé en fonction de l'identifiant entier de la sauvegarde
Les données sauvegardées stockées dans le dossier pc ne peuvent pas être accédées directement. Pour cela, il est en outre possible d'utiliser un montage d'un système de fichiers virtuelles permettant l'accès directe à ces fichiers. Pour plus d'information, ce référer à la procédure correspondante.

La page d'accueil vous présente l'état global du serveur avec, entre autre, les travaux actuellement en cours, les échecs pour lesquels l'intervention d'un administrateur est nécessaire et des graphiques de l'espace disque occupé par les sauvegardes.

Plan du site

  • Hôtes : manipulation des hôtes et de leurs sauvegardes
  • Accueil : Permet le lancement et l'arrêt des sauvegardes de la machine. Un tableau de bord présente également l'état des sauvegardes de la machine
  • Explorer les sauvegardes : Permet de parcourir les données sauvegardées. Il est également possible de télécharger ou de déclencher la restauration d'un fichier voir d'un dossier en entier
  • Fichier journal : Consulter le dernier journal d'évènements des sauvegardes de cette machine
  • Fichiers journaux : Consulter la liste des journaux d'événements des sauvegardes de cette machine
  • Modifier la configuration : Permet d'éditer la configuration des sauvegardes de la machine
  • Serveur : État du serveur de sauvegarde lui-même
  • État : Accès à la page d'accueil
  • Bilan des machines : Tableaux de bord présentant l'état des sauvegardes des machines clientes
  • Modifier la configuration : Permet d'éditer la configuration globale du serveur (Accessible uniquement aux administrateurs de BackupPC)
  • Modifier les machines : Permet d'ajouter ou supprimer des machines. Il y est également possible d'éditer les utilisateurs ayant accès aux machines sauvegardées (Accessible uniquement aux administrateurs de BackupPC)
  • Options d'administration : Permet de recharger la configuration globale de BackupPC ainsi que la liste des machines déclarées (Accessible uniquement aux administrateurs de BackupPC)
  • Fichier journal : Consulter le dernier journal d'évènements de BackupPC (Accessible uniquement aux administrateurs de BackupPC)
  • Vieux journaux : Consulter la liste des journaux d'évènements de BackupPC (Accessible uniquement aux administrateurs de BackupPC)
  • Résumé des couriels : Consulter la liste des mails d'alertes envoyés par BackupPC (Accessible uniquement aux administrateurs de BackupPC)
  • Files actuelles : Consulter la liste de files d'attente de BackupPC et les tâches qu'elles contiennent (Accessible uniquement aux administrateurs de BackupPC)
  • Documentation : Accès à la documentation en ligne de BackupPC hébergé sur le serveur
  • Wiki : Accès au wiki communautaire du projet BackupPC (http://backuppc.wiki.sourceforge.net/)
  • SourceForge : Accès à la page du projet BackupPC sur le site sourceforge.net (http://backuppc.sourceforge.net/)

Côté client

Machine GNU Linux

Via rsyncd :

La méthode rsyncd est la plus adaptée pour une machine tournant sous un système d'exploitation GNU Linux. Cette méthode requiert la présence du service rsyncd sur la machine à sauvegarder avec un partage permettant l'accès à toutes les données.

Cette méthode ne comporte aucun cryptage de données. Pour la sauvegarde d'une machine au travers d'un réseau sensible (comme Internet), il est recommandé d'utiliser la méthode rsync + ssh.
Cette méthode requiert que le paquet libfile-rsyncp-perl soit installé sur le serveur de sauvegarde.

Exemple de mise en place sous Debian GNU Linux :

Variables utilisées dans la configuration :

  • [IP serveur BackupPC] = l'IP du serveur BackupPC vue depuis la machine à sauvegarder
  • [IP d'écoute] = l'IP d'écoute du service rsyncd sur la machine
  • [mot de passe] = le mot de passe qui devra être utilisé pour la configuration de la connexion au client dans BackupPC

Procédure :

  • Installation de rsync :
    apt-get install rsync
  • 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 :
    uid = root
    gid = root
    [slash]
        path = /
        auth users = backup
        secrets file = /etc/rsyncd.secrets
        list = false
        exclude = /proc/* /dev/* /sys/* /mnt/* /media/*
        read only = false
        hosts allow = [IP serveur BackupPC]
        address = [IP d'écoute]
  • Créer le fichier /etc/rsyncd.secrets contenant le mot de passe d'accès au partage :
    backup:[mot de passe]
  • Protéger le fichier /etc/rsyncd.secrets :
    chmod 600 /etc/rsyncd.secrets
  • Activer le lancement du service BackupPC en éditant le fichier /etc/default/rsync et en modifiant les variables comme suit :
    RSYNC_ENABLE=true
    RSYNC_OPTS='--address=[IP d'écoute]'
  • Lancer le service :
    service rsync start

Le service est ainsi configuré. Les directives de configuration de BackupPC seront alors au minimum :

$Conf{XferMethod} = 'rsyncd';
$Conf{RsyncShareName} = [ 'slash' ];
$Conf{RsyncdUserName} = 'backup';
$Conf{RsyncdPasswd} = '[mot de passe]';

Via rsync + ssh :

La méthode rsync + ssh est la plus adaptée pour une machine tournant sous un système d'exploitation GNU Linux et dont la sauvegarde devra être effectuée au travers un réseau sensible tel que Internet. Cette méthode requiert la présence du service ssh sur la machine à sauvegarder et du programme rsync. De plus, l'authentification des connexions ssh de BackupPC sur la machine devront se faire grâce au mécanisme d'authentification par clé. La clé ssh de l'utilisateur backuppc du serveur de sauvegarde devra donc être ajoutée aux clés autorisés de l'utilisateur POSIX de la machine utilisé par BackupPC pour se connecter.

Exemple de mise en place sous Debian GNU Linux :

Variable utiliser dans la configuration :

  • [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

Procédure :

  • Installation de rsync et du service ssh (s'il n'est pas déjà présent) :
    apt-get install rsync openssh-server
  • 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 :
    su - [nom utilisateur]
    mkdir $HOME/.ssh
    cd $HOME/.ssh
    chmod 755 $HOME/.ssh
    scp root@srvbackup:/var/lib/backuppc/.ssh/id_rsa.pub $HOME/.ssh/authorized_keys
    chmod 644 $HOME/.ssh/authorized_keys
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.
  • 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 :
    sudo -u backuppc ssh [nom utilisateur]@[fqdn de la machine]
  • 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 :

$Conf{XferMethod} = 'rsync';
$Conf{RsyncClientPath} = '/usr/bin/rsync';
$Conf{RsyncClientCmd} = '$sshPath -l  [nom utilisateur] $rsyncPath $argList+';
$Conf{RsyncClientRestoreCmd} = '$sshPath -l [nom utilisateur] \
$host $rsyncPath $argList+';
$Conf{RsyncShareName} = [ '/' ];
$Conf{BackupFilesExclude} = {
  '*' => [
    '/proc',
    '/sys',
    '/dev'
  ]
};
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 :
    mkdir /mnt/[hostname]/[sharename]
  • Ajouter la ligne de montage automatique dans le fichier /etc/fstab :
    hostname:/path/to/share   /mnt/[hostname]/[sharename]  nfs      _netdev,defaults,auto      0  0
  • Monter le partage :
    mount /mnt/[hostname]/[sharename]

Les directives de configuration de BackupPC seront alors au minimum :

$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';
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 :
    backuppc	ALL=NOPASSWD:/bin/tar
  • Corriger les droits du fichier précédemment créé :
    chmod 0440 /etc/sudoers.d/backuppc
  • Ajouter sudo en préfixe des directives BackupPC TarClientCmd et TarClientRestoreCmd :
    sudo $tarPath [...]
Machine Microsoft Windows

La méthode smb est la plus adaptée pour une machine tournant sous un système d'exploitation Microsoft Windows. Il vous suffit de paramétrer le partage du dossier contenant les fichiers à sauvegarder. Il est éventuellement possible d'utiliser les partages systèmes comme C$ accessible uniquement en s'authentifiant comme un utilisateur ayant les droits administrateur.

Pour que la restauration soit possible, les données doivent être accessible en lecture et en écriture lors de la connexion.

Les directives de configuration de BackupPC seront alors au minimum :

$Conf{XferMethod} = 'smb';
$Conf{SmbShareName} = [ '[nom du partage]' ];
$Conf{SmbShareUserName} = '[nom utilisateur de connexion]';
$Conf{SmbSharePasswd} = '[mot de passe de connexion]';
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 :
      sudo su -
    • Éditer le fichier /etc/ssh/sshd_config et décomenter les lignes suivantes :
      PubkeyAuthentication yes
      AuthorizedKeysFile      .ssh/authorized_keys
    • 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 :

$Conf{BackupFilesOnly} = ['/volume1', '/volume2/partage1'];
Le compte admin doit être actif pour que les sauvegardes via le compte root UNIX fonctionne !

Côté serveur

En ligne de commande

Pour ajouter une machine à sauvegarder, il faut :

  • Créer le fichier de configuration de la machine. Ce fichier se trouve dans le dossier /etc/backuppc et porte le nom de domaine de la machine (fqdn) suffixé de '.pl'. Il doit appartenir à l'utilisateur backuppc et au groupe www-data.
  • Déclarer la machine dans le fichier /etc/backuppc/hosts. La ligne a ajouter doit prendre la forme :
    host                 dhcp    user            moreUsers
    machine.domaine.tld  1/0     propriétaire    personne1,personne2,..
  • host (machine.domaine.tld) : le fqdn de la machine
  • dhcp (1/0) : Si la machine à une adresse IP changeante (DHCP), mettre 1, sinon 0
  • user : Le nom d'utilisateur du propriétaire de la machine. C'est le propriétaire qui reçoit les alertes par mail concernant cette machine
  • moreUsers : La liste d'utilisateurs autorisés à intervenir sur les sauvegardes de cette machine
Afin de centraliser les message d'alertes, le propriétaire des machines est systématiquement backuppc. Le mail de cette utilisateur est en réalité un alias défini dans le fichier /etc/aliases.
  • Pour finir, il faut recharger la configuration de BackupPC :
    /etc/init.d/backuppc reload
Via l'interface web

L'ajout d'une machine peut également être fait via l'interface web par les administrateurs de BackupPC uniquement. Cette interface web peut être très pratique pour découvrir les paramètres de configuration utilisable car pour chaque directive, l'interface vous donne facilement accès à sa documentation directement accessible en ligne.

Pour ajouter une machine depuis l'interface, il faudra :

  • déclarer une nouvelle machine en allant dans Serveur puis Modifier les machines
  • 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

La modification de la configuration d'une machine est directement possible depuis l'interface web de BackupPC. Il est également possible d'éditer le fichier de configuration de la machine manuellement.

Depuis l'interface web :

  • Dans le menu Hôtes, choisir la machine concernée
  • Dans le menu de gauche, cliquer ensuite sur Modifier la configuration

L'interface est composée de différent onglets regroupant les directives de configuration par thème. En cliquant sur le nom d'une directive vous pouvez accéder directement à sa documentation. Une fois toutes vos modifications apporté, cliquer sur le bouton Sauvegarder en haut de la page.

Édition manuelle du fichier de configuration de la machine :

  • Apporter avec les modifications voulu en éditant le fichier /etc/backuppc/<machine>.pl
  • Recharger la configuration de BackupPC :
    /etc/init.d/backuppc reload

Les sauvegardes se déclenche depuis l'interface web de BackupPc.

  • Connectez-vous à l'interface web de BackupPC
  • Dans Hôtes, choisissez la machine concernée
  • Cliquez sur le bouton Démarrer la sauvegarde incrémentielle ou sur le bouton Démarrer la sauvegarde complète en fonction du type de sauvegarde voulu
  • Sur la plage qui suit, confirmez votre choix

La sauvegarde est alors lancée et vous revenez sur la page de la machine. Vous pouvez suivre l'état de la machine en cliquant sur le lien Fichier journal dans le menu de gauche.

L'interface web offre une interface de navigation dans les données sauvegardés qui permet leur téléchargement ou leur restauration. Pour accéder à cette interface, il faut :

  • Aller dans le menu Hôte à gauche, puis choisir la machine concernée
  • Cliquer sur Explorer les sauvegardes

Par défaut, vous naviguez dans les données de la dernière sauvegarde disponible pour cette machine. Un menu déroulant en haut permet éventuellement de choisir une sauvegarde plus ancienne. La navigation se fait à la manière d'un explorateur de fichiers.

Pour télécharger ou restaurer des données, il suffit de les sélectionner dans l'explorateur et de cliquer sur le bouton Restaurer les fichiers sélectionnés en haut ou en bas de la page. Une page vous permet ensuite de choisir quelques méthodes vous souhaitez utiliser pour récupérer ces données :

  • soit une restauration directe : les données seront alors restaurées directement sur la machine
  • soit le téléchargement d'une archive zip : un téléchargement débutera alors dans votre navigateur web afin de récupérer une archive zip contenant les données voulues. Il est possible de choisir le niveau de compression de l'archive.
  • soit le téléchargement d'une archive tar non-compressée

Vous devez ici cliquer sur le bouton correspondant à la méthode que vous désirez. Dans le cas de la restauration directe, une page vous demandera de confirmer l'action.

Dans le cas de bases de données ou d'annuaires LDAP, il faut restaurer un fichier dump pour être certain de la cohérence des données et non le répertoire de la base de données concernée.

Cette restauration n'est possible que si vous avez sauvegardé tout les fichiers et dossiers du serveur et que celui-ci est sauvegardé en utilisant la méthode rsyncd. Pour restaurer une machine Linux complètement, il faudra alors :

  • démarrer sur un cdrom de boot ( installeur Debian ou autre LiveCD Linux avec une version de noyau relativement équivalente)
  • configurer le réseau à l'identique de la machine à restaurer
  • partitionner le ou les disques à l'identique, soit avec les outils fournis avec le cdrom, soit via cfdisk
  • monter les partitions dans un répertoire temporaire (/target par exemple)
  • récupérer, s'il n'est pas présent sur le cd, l'utilitaire rsync à partir d'une machine sur lequel il est installé (par exemple le serveur BackupPC :
    scp root@srvbackup:/usr/bin/rsync /bin/
    scp root@srvbackup:/lib/libpopt.so.0 /lib/
    scp root@srvbackup:/lib/libacl.so.1 /lib/
    scp root@srvbackup:/lib/libattr.so.1 /lib/
  • mettre en place une configuration rsync identique au serveur à restaurer (en récupérant sur le serveur de sauvegarde, dans la sauvegarde concernée, les fichiers /etc/rsyncd.conf et /etc/rsyncd.secrets)
  • modifier le fichier /etc/rsyncd.conf pour changer le chemin de la racine du système :
  • remplacer :
    path = /
  • par :
    path = /target
  • démarrer le serveur rsync :
    rsync --daemon
  • lancer la restauration de tous les fichiers depuis le serveur de sauvegarde, via l'interface web (cf. la procédure de restauration de données sauvegardées ci-dessus)
  • installer le secteur de boot :
    chroot /target
    grub-install /dev/sda
    exit
  • supprimer le fichier de correspondance des interfaces réseau avec les adresse mac :
    rm /target/etc/udev/rules.d/*persistent-net*.rules
  • démonter les partitions de /target
  • redémarrer le serveur sans le cdrom
Attention, dans le cas de bases de données (ou annuaire LDAP), il peut être nécessaire suite au redémarrage de restaurer un dump des bases.

Cette restauration n'est possible que si vous avez sauvegardé tout les fichiers et dossiers du serveur et que celui-ci est sauvegarder en utilisant la méthode rsync via ssh. Pour restaurer une machine Linux complètement, il faudra alors :

  • installer une version de base du système d'exploitation de la machine en conservant la configuration réseau et le partitionnement à l'identique de la machine à restaurer
  • rebooter ensuite sur le système et installer rsync et le service ssh
  • installer la clé de l'utilisateur de BackupPC sur la machine en récupérant sur le serveur de sauvegarde, dans la sauvegarde concernée, le fichier /root/.ssh/authorized_keys
  • remettre en place les clés SSH de la machine à restaure en récupérant sur le serveur de sauvegarde, dans la sauvegarde concernée, les fichiers :
    • /etc/ssh/ssh_host_rsa_key
    • /etc/ssh/ssh_host_rsa_key.pub
    • /etc/ssh/ssh_host_dsa_key
    • /etc/ssh/ssh_host_dsa_key.pub
  • relancer le service SSH :
    /etc/init.d/ssh restart
  • lancer la restauration de tous les fichiers depuis le serveur de sauvegarde, via l'interface web (cf. la procédure de restauration de données sauvegardées ci-dessus)
  • installer le secteur de boot :
    grub-install /dev/sda
    exit
  • supprimer le fichier de correspondance des interfaces réseau avec les adresse mac :
    rm /etc/udev/rules.d/*persistent-net*.rules
  • redémarrer ensuite le serveur
Attention, dans le cas de bases de données (ou annuaire LDAP), il peut être nécessaire suite au redémarrage de restaurer un dump des bases.

Il existe un script pour cela BackupPcDeleteBackups (téléchargeable 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.

Utilisation :

Usage: /usr/local/bin/BackupPcDeleteBackups [-c <client> [-d <backupnumber> -b <before data> -r [-f]] | [-l]] | [-n]
  -c <client> - client machine for which the backup was made
  -d <number> - number of Backup which should be deleted
  -b <date>   - delete all backups before this date (YYYY-MM-DD)
  -r          - remove the entire client
  -f          - force to run Backuppc_nightly so the space got free afterwards
  -n          - only run Backuppc_nightly
  -l          - list the backups which made for <client>
  -n          - Just run BackupPC_nightly (even if no backups deleted)
  -h          - this help

Exemple d'utilisation :

  • Lister les sauvegardes d'une machine :
    /usr/local/bin/BackupPcDeleteBackups -c <machine> -l
  • Supprimer la sauvegarde #3 d'une machine :
    /usr/local/bin/BackupPcDeleteBackups -c <machine> -d 3
  • Supprimer toutes les sauvegardes d'une machine datant d'avant le 1 février 2010 :
    /usr/local/bin/BackupPcDeleteBackups -c <machine> -b 2010-02-01
ATTENTION Si vous supprimez une sauvegarde complète d'une machine, toutes les sauvegardes incrémentales dépendantes le seront également.

Le script BackupPcDeleteBackups installable en complément sur le serveur qui vous permet en premier lieu de supprimer une ou plusieurs sauvegardes d'une machine, vous permet également de faire cela. Il va pour vous :

  • Supprimer la déclaration de la machine dans le fichier /etc/backuppc/hosts
  • Supprimer le fichier de configuration de la machine se trouvant dans /etc/backuppc/<machine>.pl
  • Supprimer les sauvegardes de la machine se trouvant dans le dossier /var/lib/backuppc/pc/<machine>
Si vous souhaitez conserver une sauvegarde des informations de configuration concernant cette machine, pensez à le faire avant d'exécuter ce script.

Vous devez pour cela exécuter ce script de la manière suivante :

/usr/local/bin/BackupPcDeleteBackups -c <machine> -r
  • Ajouter une ligne portant le nom du dossier (juste le nom du dossier, pas le chemin) dans BackupFilesExclude dans la clef correspondant au partage concerné (* pour tous)
  • Ajout un paramètre –exclude [nom_dossier] dans RsyncArgs
  • Aller dans les données du/des serveur(s) et supprimer les fichiers/dossiers voulu
cd /var/lib/backuppc/pc/[machine]/[id_backup]/
rm -fr [truc]
  • Lancer BackupPC_nightly pour purger les liens hard sur ces fichiers en tant que l'utilisateur backuppc
su - backuppc
/usr/share/backuppc/bin/BackupPC_nightly 0 255

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 :
    $Conf{FullPeriod} = '9.97';
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.
  • 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 :
    $Conf{BlackoutPeriods} = [
      {
        'hourEnd' => '23.9',
        'weekDays' => [
          '1',
          '2',
          '3',
          '4',
          '5',
          '6'
        ],
        'hourBegin' => '6'
      },
      {
        'hourEnd' => '23.9',
        'weekDays' => [
          '0'
        ],
        'hourBegin' => '0'
      }
    ];
  • Utiliser la suite de scripts backuppc-run-backup pour planifier via une tâche cron la sauvegarde complète des machines tout les dimanches :
    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

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 :

~# /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
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.

Pour une machine ne répondant pas au ping, il est possible de le “désactiver” à l'aide du paramètre suivant :

$Conf{PingPath} = '/bin/echo';
  • informatique/systeme/backup/backuppc.txt
  • Dernière modification : 2021/04/29 09:18
  • de bn8