Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
informatique:systeme:backup:backuppc [2010/02/15 15:40] – Reprise ancien Wiki bn8 | informatique:systeme:backup:backuppc [2021/04/29 09:18] (Version actuelle) – [Ajouter une machine à sauvegarder] bn8 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== | + | ====== |
+ | |||
+ | Le service **BackupPC** gère les sauvegardes de la machines. Il s' | ||
+ | |||
+ | ===== Configuration ===== | ||
+ | |||
+ | La configuration du service est stockée dans le dossier /// | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | 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 // | ||
+ | |||
+ | L' | ||
+ | |||
+ | L' | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ===== Données exploitées ===== | ||
+ | |||
+ | BackupPC exploite ses données de manière autonome et les rend accessibles au travers d' | ||
+ | |||
+ | * //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 | ||
+ | * //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' | ||
+ | * 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' | ||
+ | |||
+ | < | ||
+ | |||
+ | ===== Procédures ===== | ||
+ | |||
+ | ==== Présentation de l' | ||
+ | |||
+ | La page d' | ||
+ | |||
+ | === Plan du site === | ||
+ | |||
+ | * **Hôtes** : manipulation des hôtes et de leurs sauvegardes | ||
+ | |||
+ | * **Accueil** : Permet le lancement et l' | ||
+ | * **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' | ||
+ | * **Fichiers journaux** : Consulter la liste des journaux d' | ||
+ | * **Modifier la configuration** : Permet d' | ||
+ | |||
+ | * **Serveur** : État du serveur de sauvegarde lui-même | ||
+ | |||
+ | * **État** : Accès à la page d' | ||
+ | * **Bilan des machines** : Tableaux de bord présentant l' | ||
+ | * **Modifier la configuration** : Permet d' | ||
+ | * **Modifier les machines** : Permet d' | ||
+ | * **Options d' | ||
+ | * **Fichier journal** : Consulter le dernier journal d' | ||
+ | * **Vieux journaux** : Consulter la liste des journaux d' | ||
+ | * **Résumé des couriels** : Consulter la liste des mails d' | ||
+ | * **Files actuelles** : Consulter la liste de files d' | ||
+ | * **Documentation** : Accès à la documentation en ligne de BackupPC hébergé sur le serveur | ||
+ | * **Wiki** : Accès au wiki communautaire du projet BackupPC (http:// | ||
+ | * **SourceForge** : Accès à la page du projet BackupPC sur le site sourceforge.net (http:// | ||
+ | |||
+ | ==== 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' | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | < | ||
+ | |||
+ | //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' | ||
+ | * **[mot de passe]** = le mot de passe qui devra être utilisé pour la configuration de la connexion au client dans BackupPC | ||
+ | |||
+ | // | ||
+ | |||
+ | * Installation de //rsync// : <code bash> | ||
+ | * Configuration du service //rsyncd// avec un partage nommé //slash// correspondant à la racine du système et accessible à l' | ||
+ | |||
+ | * Créer le fichier /// | ||
+ | gid = root | ||
+ | [slash] | ||
+ | path = / | ||
+ | auth users = backup | ||
+ | secrets file = / | ||
+ | list = false | ||
+ | exclude = /proc/* /dev/* /sys/* /mnt/* /media/* | ||
+ | read only = false | ||
+ | hosts allow = [IP serveur BackupPC] | ||
+ | address = [IP d' | ||
+ | |||
+ | * Créer le fichier /// | ||
+ | |||
+ | * Protéger le fichier /// | ||
+ | |||
+ | * Activer le lancement du service BackupPC en éditant le fichier /// | ||
+ | RSYNC_OPTS=' | ||
+ | |||
+ | * Lancer le service : <code bash> | ||
+ | |||
+ | Le service est ainsi configuré. Les directives de configuration de BackupPC seront alors au minimum : <code perl> | ||
+ | $Conf{RsyncShareName} = [ ' | ||
+ | $Conf{RsyncdUserName} = ' | ||
+ | $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' | ||
+ | |||
+ | //Exemple de mise en place sous Debian GNU Linux :// | ||
+ | |||
+ | Variable utiliser dans la configuration : | ||
+ | |||
+ | * **[nom utilisateur]** = le nom de l' | ||
+ | * **[fqdn de la machine]** = nom de domaine complet (= //fqdn//) de la machine connue dans la configuration de BackupPC | ||
+ | |||
+ | // | ||
+ | |||
+ | * Installation de //rsync// et du service //ssh// (s'il n'est pas déjà présent) : <code bash> | ||
+ | |||
+ | * Vérifier que la directive // | ||
+ | * Autoriser BackupPC à se connecter en ssh sur la machine : <code bash>su - [nom utilisateur] | ||
+ | mkdir $HOME/ | ||
+ | cd $HOME/ | ||
+ | chmod 755 $HOME/ | ||
+ | scp root@srvbackup:/ | ||
+ | chmod 644 $HOME/ | ||
+ | |||
+ | < | ||
+ | |||
+ | * 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 lorsqu' | ||
+ | |||
+ | Le service est ainsi configuré. Les directives de configuration de BackupPC seront alors au minimum :<code perl> | ||
+ | $Conf{RsyncClientPath} = '/ | ||
+ | $Conf{RsyncClientCmd} = ' | ||
+ | $Conf{RsyncClientRestoreCmd} = ' | ||
+ | $host $rsyncPath $argList+'; | ||
+ | $Conf{RsyncShareName} = [ '/' | ||
+ | $Conf{BackupFilesExclude} = { | ||
+ | ' | ||
+ | '/ | ||
+ | '/ | ||
+ | '/ | ||
+ | ] | ||
+ | };</ | ||
+ | |||
+ | == 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// | ||
+ | |||
+ | Pour cela, il faut commencer par mettre en place le montage du partage //NFS//. Par convention, celui-ci sera effectué dans le dossier /// | ||
+ | |||
+ | * Créer ce dossier : <code bash> | ||
+ | * Ajouter la ligne de montage automatique dans le fichier /// | ||
+ | * Monter le partage : <code bash> | ||
+ | |||
+ | Les directives de configuration de BackupPC seront alors au minimum : <code perl> | ||
+ | $Conf{TarShareName} = [' | ||
+ | $Conf{TarClientCmd} = 'sudo $tarPath -c -v -f - -C / | ||
+ | $Conf{TarClientRestoreCmd} = 'sudo $tarPath -x -p --numeric-owner --same-owner -v -f -' | ||
+ | . ' -C / | ||
+ | |||
+ | < | ||
+ | |||
+ | * Créer le fichier /// | ||
+ | * Corriger les droits du fichier précédemment créé : <code bash> | ||
+ | * Ajouter //sudo// en préfixe des directives BackupPC // | ||
+ | </ | ||
+ | |||
+ | == Machine Microsoft Windows == | ||
+ | |||
+ | La méthode //smb// est la plus adaptée pour une machine tournant sous un système d' | ||
+ | |||
+ | < | ||
+ | |||
+ | Les directives de configuration de BackupPC seront alors au minimum : <code perl> | ||
+ | $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' | ||
+ | * Dans le //Panneau de configuration//, | ||
+ | * Cocher la case //Activer le service SSH// et cliquer sur le bouton // | ||
+ | * activer l' | ||
+ | * connecter vous en SSH au NAS avec un compte ayant des droits admins | ||
+ | * passer en tant que l' | ||
+ | * Éditer le fichier ''/ | ||
+ | AuthorizedKeysFile | ||
+ | * Autoriser BackupPC à se connecter au NAS en tant que //root// : | ||
+ | * créer le dossier ''/ | ||
+ | * créer le fichier ''/ | ||
+ | |||
+ | 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 ''/ | ||
+ | <code perl> | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | |||
+ | === Côté serveur === | ||
+ | |||
+ | == En ligne de commande == | ||
+ | |||
+ | Pour ajouter une machine à sauvegarder, | ||
+ | |||
+ | * Créer le fichier de configuration de la machine. Ce fichier se trouve dans le dossier /// | ||
+ | * Déclarer la machine dans le fichier /// | ||
+ | machine.domaine.tld | ||
+ | |||
+ | |||
+ | * //host (machine.domaine.tld)// | ||
+ | * //dhcp (1/0)// : Si la machine à une adresse IP changeante (DHCP), mettre 1, sinon 0 | ||
+ | * //user// : Le nom d' | ||
+ | * // | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | |||
+ | * Pour finir, il faut recharger la configuration de BackupPC : < | ||
+ | |||
+ | == Via l' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Pour ajouter une machine depuis l' | ||
+ | |||
+ | * 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' | ||
+ | * 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' | ||
+ | |||
+ | **Depuis l' | ||
+ | |||
+ | * Dans le menu //Hôtes//, choisir la machine concernée | ||
+ | * Dans le menu de gauche, cliquer ensuite sur //Modifier la configuration// | ||
+ | |||
+ | L' | ||
+ | |||
+ | **Édition manuelle du fichier de configuration de la machine :** | ||
+ | |||
+ | * Apporter avec les modifications voulu en éditant le fichier /// | ||
+ | * Recharger la configuration de BackupPC : < | ||
+ | |||
+ | ==== Déclencher la sauvegarde d'une machine ==== | ||
+ | |||
+ | Les sauvegardes se déclenche depuis l' | ||
+ | |||
+ | * Connectez-vous à l' | ||
+ | * Dans //Hôtes//, choisissez la machine concernée | ||
+ | * Cliquez sur le bouton //Démarrer la sauvegarde incrémentielle// | ||
+ | * 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' | ||
+ | |||
+ | ==== Restauration et téléchargement des données sauvegardées ==== | ||
+ | |||
+ | L' | ||
+ | |||
+ | * 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' | ||
+ | |||
+ | * 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' | ||
+ | * 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' | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ==== 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, | ||
+ | |||
+ | * 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' | ||
+ | * partitionner le ou les disques à l' | ||
+ | * monter les partitions dans un répertoire temporaire (/target par exemple) | ||
+ | * récupérer, | ||
+ | scp root@srvbackup:/ | ||
+ | scp root@srvbackup:/ | ||
+ | scp root@srvbackup:/ | ||
+ | |||
+ | * 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 / | ||
+ | * modifier le fichier /// | ||
+ | |||
+ | * remplacer : < | ||
+ | * par : < | ||
+ | |||
+ | * démarrer le serveur rsync :< | ||
+ | |||
+ | * lancer la restauration de tous les fichiers depuis le serveur de sauvegarde, via l' | ||
+ | * installer le secteur de boot : < | ||
+ | grub-install /dev/sda | ||
+ | exit</ | ||
+ | |||
+ | * supprimer le fichier de correspondance des interfaces réseau avec les adresse mac : < | ||
+ | |||
+ | * démonter les partitions de /target | ||
+ | * redémarrer le serveur sans le cdrom | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ==== 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, | ||
+ | |||
+ | * installer une version de base du système d' | ||
+ | * rebooter ensuite sur le système et installer rsync et le service ssh | ||
+ | * installer la clé de l' | ||
+ | * 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 : | ||
+ | * /// | ||
+ | * /// | ||
+ | * /// | ||
+ | * /// | ||
+ | * relancer le service SSH : < | ||
+ | |||
+ | * lancer la restauration de tous les fichiers depuis le serveur de sauvegarde, via l' | ||
+ | * installer le secteur de boot : < | ||
+ | exit</ | ||
+ | |||
+ | * supprimer le fichier de correspondance des interfaces réseau avec les adresse mac : < | ||
+ | * redémarrer ensuite le serveur | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ==== Supprimer une sauvegarde d'une machine ==== | ||
+ | |||
+ | Il existe un script pour cela **BackupPcDeleteBackups** (téléchargeable [[https:// | ||
+ | |||
+ | |||
+ | **Utilisation :** | ||
+ | |||
+ | Usage: / | ||
+ | -c < | ||
+ | -d < | ||
+ | -b < | ||
+ | -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' | ||
+ | |||
+ | * Lister les sauvegardes d'une machine : < | ||
+ | |||
+ | * Supprimer la sauvegarde //#3// d'une machine : < | ||
+ | * Supprimer toutes les sauvegardes d'une machine datant d' | ||
+ | |||
+ | |||
+ | <note warning> | ||
+ | |||
+ | ==== 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 /// | ||
+ | * Supprimer le fichier de configuration de la machine se trouvant dans /// | ||
+ | * Supprimer les sauvegardes de la machine se trouvant dans le dossier /// | ||
+ | |||
+ | < | ||
+ | |||
+ | Vous devez pour cela exécuter ce script de la manière suivante : < | ||
+ | |||
+ | ===== 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 // | * Ajouter une ligne portant le nom du dossier (juste le nom du dossier, pas le chemin) dans // | ||
* Ajout un paramètre //--exclude [nom_dossier]// | * Ajout un paramètre //--exclude [nom_dossier]// | ||
- | ====== Supprimer un ou plusieurs fichiers/ | + | ==== Supprimer un ou plusieurs fichiers/ |
* Aller dans les données du/des serveur(s) et supprimer les fichiers/ | * Aller dans les données du/des serveur(s) et supprimer les fichiers/ | ||
Ligne 14: | Ligne 409: | ||
su - backuppc | su - backuppc | ||
/ | / | ||
+ | |||
+ | ==== Sauvegardes complètes uniquement les dimanches ==== | ||
+ | |||
+ | Pour être certain que les sauvegardes complètes est lieu uniquement le dimanche, et du fait que // | ||
+ | |||
+ | * Configurer la périodicité des sauvegardes complète à plus de 7 jours : < | ||
+ | |||
+ | < | ||
+ | |||
+ | * Exclure toute la journée du dimanche pour la sauvegarde complète en plus de votre période d' | ||
+ | { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | ' | ||
+ | }, | ||
+ | { | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ], | ||
+ | ' | ||
+ | } | ||
+ | ];</ | ||
+ | * Utiliser la suite de scripts [[http:// | ||
+ | git clone http:// | ||
+ | ln -s / | ||
+ | ln -s / | ||
+ | echo -e "# BackupPC : Full backup every Sunday\n1 0 * * 0 root / | ||
+ | |||
+ | ==== Export des dernières sauvegardes sur disques USB chiffrés ==== | ||
+ | |||
+ | Voir : https:// | ||
+ | |||
+ | ==== Les graphiques ne sont pas affichés sur la page d' | ||
+ | |||
+ | Il suffit d' | ||
+ | ~# chown backuppc: / | ||
+ | ~# chmod 640 / | ||
+ | <note important> | ||
+ | |||
+ | ==== Désactiver le ping sur une machine ==== | ||
+ | |||
+ | Pour une machine ne répondant pas au ping, il est possible de le //" | ||