====== 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.
===== Configuration =====
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 [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=600848|600848]]. Un patch a été proposé mais une solution moins intrusive est en attente.
===== Données exploitées =====
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.
===== Procédures =====
==== Présentation de l'interface web ====
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/)
==== Ajouter une machine à sauvegarder ====
=== 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//
==== Modifier la configuration d'une machine ====
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/.pl//
* Recharger la configuration de BackupPC : /etc/init.d/backuppc reload
==== Déclencher la sauvegarde d'une machine ====
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.
==== Restauration et téléchargement des données sauvegardées ====
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.
==== Restauration complète d'une machine Linux via rsync ====
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.
==== Restauration complète d'une machine Linux via rsync + ssh ====
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.
==== Supprimer une sauvegarde d'une machine ====
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//.
**Utilisation :**
Usage: /usr/local/bin/BackupPcDeleteBackups [-c [-d -b -r [-f]] | [-l]] | [-n]
-c - client machine for which the backup was made
-d - number of Backup which should be deleted
-b - 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
-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 -l
* Supprimer la sauvegarde //#3// d'une machine : /usr/local/bin/BackupPcDeleteBackups -c -d 3
* Supprimer toutes les sauvegardes d'une machine datant d'avant le 1 février 2010 : /usr/local/bin/BackupPcDeleteBackups -c -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.
==== Supprimer une machine ====
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/.pl//
* Supprimer les sauvegardes de la machine se trouvant dans le dossier ///var/lib/backuppc/pc///
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 -r
===== Trucs et astuces =====
==== Désactiver la sauvegarde d'un répertoire avec rysnc ====
* 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//
==== Supprimer un ou plusieurs fichiers/dossiers dans les sauvegardes ====
* 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
==== 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 : $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 [[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 : 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
==== 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 : ~# /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.
==== 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 : $Conf{PingPath} = '/bin/echo';