Outils pour utilisateurs

Outils du site


admin:services:backup-archive20190823

Différences

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


Révision précédente
admin:services:backup-archive20190823 [2019/08/23 13:01] (Version actuelle) – créée [Backup de admin:service:backup au 23/08/2019] herve
Ligne 1: Ligne 1:
 +[[:admin|< retour à la page de l'administration technique]]
 +
 +<WRAP center round info 60%>
 +Archive de la page "admin:services:backup" au 23/08/2019 pour garder trace des anciens paramétrages de backup.
 +</WRAP>
 +
 +
 +<WRAP center round alert 60%>
 +Actuellement (2018-04-29) **il n'y a pas de backups à federez** car la solution legacy (obnam) n'a pas été tenue à jour (*) et la solution future (borg) jamais vraiment déployée.
 +
 +(* donc en gros on sait pas ce qui est sauvegardé et si ça correspond à ce qui doit l'être, de plus, visiblement, quand les backups échouent, il peut se passer plusieurs semaines de multiples email quotidiens sans que personne ne s'en occupe)
 +
 +En attendant y'en a marre des mails d’échec d'obnam que tout le monde semble ignorer, donc les crons de backups sont désactivés.
 +
 +N'hésitez pas à reprendre le flambeau, avant la prochaine catastrophe espérons-le...
 +</WRAP>
 +
 +
 +===== Concept de sauvegarde =====
 +
 +**Backupninja** sert pour les sauvegardes automatisées locales (''/var/backups'') :
 +
 +  * des informations systèmes utiles (dpkg-selections, fstab, lvm...)
 +  * des dumps des bases de données MySQL
 +
 +**Obnam** sert à effectuer la sauvegarde proprement dite vers les serveurs de destination. Il gère l'aspect snapshot et déduplication des données.
 +
 +<wrap important>Actuellement (2017-06-24) les backups d'obnam de dodecagon vers quigon sont désactivés !</wrap>
 +
 +Actuellement, Borg est en cours de déploiement pour remplacer Obnam.
 +
 +**BorgBackup** (ou Borg) sert à effectuer la sauvegarde proprement dite vers les serveurs de destination. Il gère un historique des versions des sauvegardes ainsi que la déduplication et la compression des données.
 +
 +----
 +
 +===== Opérations courantes =====
 +
 +<wrap info>La doc concernant la mise en place initiale se situe plus bas.</wrap>
 +
 +==== Faire une sauvegarde ====
 +
 +Exemple depuis hexagon vers quigon :
 +
 +<code>obnam --config /etc/obnam/to_quigon.profile backup</code>
 +
 +==== Enlever un lock récalcitrant ====
 +
 +Par exemple, un lock de la part d'hexagon vers kdell:
 +
 +<code>obnam --config /etc/obnam/to_kdell.profile force-lock</code>
 +
 +<wrap lo>force-lock removes a lock file for a client in the repository.  You should only force a lock if you are sure no-one is accessing that client's data in the repository.  **A dangling lock might happen, for example, if obnam loses its network connection to the backup repository.**</wrap>
 +==== Mettre à jour la liste des chemins à sauvegarder ====
 +
 +Voir la sous-section [[admin:services:backup#configuration-d-obnam|Contenu des fichiers de config]].
 +
 +<wrap tip></wrap>(nbsp)Pensez bien à mettre à jour le contenu des fichiers de config sur le wiki également !
 +
 +
 +==== Voir les générations (versions) ====
 +
 +Exemple depuis hexagon avec l'archive située sur quigon :
 +
 +<code>obnam --config /etc/obnam/to_quigon.profile generations</code>
 +
 +==== Restaurer des données ====
 +
 +Si dessous quelques exemples testés.
 +
 +Voir aussi la doc officielle : http://code.liw.fi/obnam/manual/obnam-manual.en.html#restoring-from-backups
 +
 +=== Restauration depuis le serveur originel ===
 +
 +Ce cas se présente lorsque le serveur originel est toujours "ok" mais qu'on veut restaurer des données perdues/modifiées par inadvertance/...
 +
 +== Restauration via montage FUSE ==
 +
 +Exemple depuis hexagon avec l'archive située sur quigon :
 +
 +Création d'un dossier pour le point de montage
 +
 +<code>mkdir /path/to/restore-fuse-mountpoint</code>
 +
 +montage de l'archive en tant que système de fichier FUSE
 +
 +<code>obnam --config /etc/obnam/to_quigon.profile mount --to /path/to/restore-fuse-mountpoint</code>
 +
 +Montre les générations accessibles pour la restauration
 +
 +<code>ls -la /path/to/restore-fuse-mountpoint</code>
 +
 +Restauration du fichier /etc/postfix/main.cf depuis la dernière génération
 +
 +<code>cp /path/to/restore-fuse-mountpoint/latest/etc/postfix/main.cf /tmp/main.cf.restored</code>
 +
 +Démonter le système de fichier FUSE
 +
 +<code>fusermount -u /path/to/restore-fuse-mountpoint</code>
 +
 +=== Restauration depuis une machine tierce ===
 +
 +Dans le cas où l'on veut restaurer sur une machine X (pas précédemment inclue dans le système des sauvegardes) les données d'une machine A à partir de la sauvegarde effectuée sur la machine B ou C.
 +
 +  * Il faut installer ''obnam'' sur la machine X (merci Captain Obvious !)
 +  * Il faut au préalable ajouter la clef publique SSH du compte qui sert à effectuer la restauration dans le ''~obnam/.ssh/autorized_keys'' sur la machine B (sinon obnam ne pourra pas se connecter en SFTP au repository).
 +  * Il suffit ensuite d'utiliser obnam depuis la machine X en précisant
 +    * l'option ''--repository=sftp:%%//%%obnam@machineB.example.org/~/obnam-repository-machineA'' pour aller chercher les données sur la machine B
 +    * l'option ''--client-name=machineA'' pour restaurer les données de la machine A
 +    * l'option ''--no-default-configs'' pour faire fi de toute éventuelle configuration d'obnam déjà présente sur la machine X
 +
 +Exemple testé ci-dessous : restauration sur gluon (serveur perso de Zertrin) de données de kdell à partir de la sauvegarde située sur hexagon.
 +
 +== Avec FUSE ==
 +
 +  * Ajout de la clef SSH de ''zertrin@gluon'' dans ''~obnam/.ssh/authorized_keys'' sur hexagon : //exercice laissé au lecteur//
 +  * Lister les générations disponibles (et en même temps vérifier que la connexion fonctionne) :
 +
 +<code>obnam --no-default-configs --repository=sftp://obnam@hexagon.federez.net/~/obnam-repository-machineA --client-name=kdell generations</code>
 +
 +++++ output |
 +<code>
 +2       2016-02-14 22:46:03 .. 2016-02-14 22:57:24 (9013 files, 42206636 bytes)
 +23      2016-02-14 23:34:11 .. 2016-02-14 23:36:00 (9018 files, 58471331 bytes)
 +65      2016-02-15 00:33:38 .. 2016-02-15 00:34:21 (9209 files, 81373094 bytes)
 +87      2016-02-15 01:28:28 .. 2016-02-15 01:29:04 (9147 files, 75389186 bytes)
 +108     2016-02-15 23:45:34 .. 2016-02-15 23:46:41 (9149 files, 75545016 bytes)
 +129     2016-02-16 01:40:25 .. 2016-02-16 01:41:06 (9149 files, 75617687 bytes)
 +150     2016-02-16 03:40:22 .. 2016-02-16 03:40:42 (9149 files, 75617687 bytes)
 +171     2016-02-16 05:40:21 .. 2016-02-16 05:40:45 (9149 files, 75681743 bytes)
 +192     2016-02-16 07:40:24 .. 2016-02-16 07:40:44 (9149 files, 75686602 bytes)
 +213     2016-02-16 09:40:22 .. 2016-02-16 09:40:43 (9149 files, 75687464 bytes)
 +234     2016-02-16 11:40:29 .. 2016-02-16 11:40:49 (9149 files, 75687464 bytes)
 +255     2016-02-16 13:40:24 .. 2016-02-16 13:40:46 (9149 files, 75687464 bytes)
 +276     2016-02-16 15:40:23 .. 2016-02-16 15:40:47 (9149 files, 75687654 bytes)
 +297     2016-02-16 17:40:30 .. 2016-02-16 17:40:55 (9149 files, 75687654 bytes)
 +318     2016-02-16 19:40:49 .. 2016-02-16 19:41:23 (9149 files, 75687325 bytes)
 +</code>
 +++++
 +
 +  * Préparer un point de montage pour le système de fichier FUSE :
 +
 +<code>mkdir /path/to/obnam_restore_kdell</code>
 +
 +  * Monter la sauvegarde via obnam avec FUSE :
 +
 +<code>obnam --no-default-configs --repository=sftp://obnam@hexagon.federez.net/~/obnam-repository-machineA --client-name=kdell mount --to /path/to/obnam_restore_kdell</code>
 +
 +  * Vérifier qu'on a bien toutes les générations de dispo dans ''/path/to/obnam_restore_kdell'' :
 +
 +<code>ls -la /path/to/obnam_restore_kdell</code>
 +
 +++++ output |
 +<code>
 +total 68
 +drwxr-xr-x 25 root root 4096 Feb 15 23:46 108
 +drwxr-xr-x 25 root root 4096 Feb 16 01:41 129
 +drwxr-xr-x 25 root root 4096 Feb 16 03:40 150
 +drwxr-xr-x 25 root root 4096 Feb 16 05:40 171
 +drwxr-xr-x 25 root root 4096 Feb 16 07:40 192
 +drwxr-xr-x 25 root root 4096 Feb 14 22:57 2
 +drwxr-xr-x 25 root root 4096 Feb 16 09:40 213
 +drwxr-xr-x 25 root root 4096 Feb 14 23:36 23
 +drwxr-xr-x 25 root root 4096 Feb 16 11:40 234
 +drwxr-xr-x 25 root root 4096 Feb 16 13:40 255
 +drwxr-xr-x 25 root root 4096 Feb 16 15:40 276
 +drwxr-xr-x 25 root root 4096 Feb 16 17:40 297
 +drwxr-xr-x 25 root root 4096 Feb 16 19:41 318
 +drwxr-xr-x 25 root root 4096 Feb 15 00:34 65
 +drwxr-xr-x 25 root root 4096 Feb 15 01:29 87
 +lrwxr-xr-x 25 root root 4096 Feb 16 19:41 latest -> 318
 +-r--r--r-- 25 root root 4096 Feb 16 19:41 .pid
 +</code>
 +++++
 +
 +  * Voir le contenu de la génération 42 :
 +
 +<code>ls -la /path/to/obnam_restore_kdell/42</code>
 +
 +  * Voir le contenu de la dernière génération (''latest'') :
 +
 +<code>ls -laH /path/to/obnam_restore_kdell/latest</code>
 +
 +++++ output |
 +<code>
 +total 28
 +drwxr-xr-x   6 root root  4096 Feb 14 17:51 data
 +drwxr-xr-x 112 root root 12288 Feb 16 17:53 etc
 +drwxr-xr-x  24 root root  4096 Dec 21 17:16 home
 +drwx------  17 root root  4096 Feb 16 14:06 root
 +drwxr-xr-x  14 root root  4096 Feb 14 17:51 var
 +</code>
 +++++
 +
 +  * Restaurer le fichier ''/etc/postfix/main.cf'' (par exemple) de la génération 42 :
 +
 +<code>cp /path/to/obnam_restore_kdell/42/etc/postfix/main.cf /path/to/destination/main.cf.restored</code>
 +
 +  * Démonter la sauvegarde :
 +
 +<code>fusermount -u /path/to/obnam_restore_kdell</code>
 +
 +----
 +
 +===== Installation initiale de backupninja =====
 +
 +Backupninja sert à créer des backups des informations système ainsi que de la base de donnée MySQL automatiquement.
 +
 +Pour info, les backups créés par backupninja sont stockés dans ''/var/backups''. Ce dossier est inclus dans la sauvegarde d'obnam ce qui permet d'externaliser les backups effectués par backupninja.
 +
 +<code>
 +apt-get install hwinfo debconf-utils backupninja
 +</code>
 +
 +Désactiver l'envoi de mails en cas de succès : dans ''/etc/backupninja.conf'' mettre/changer ''reportsuccess = no''.
 +
 +Activer les backups des infos systèmes (:!: mettre ''lvm = no'' pour les systèmes sans LVM comme **quigon**)
 +
 +++++ Ajouter le fichier /etc/backup.d/10.sys |
 +<file ini /etc/backup.d/10.sys>
 +packages = yes
 +partitions = yes
 +dosfdisk = yes
 +hardware = yes
 +luksheaders = no
 +lvm = yes
 +
 +# packagesfile = /var/backups/dpkg-selections.txt
 +# selectionsfile = /var/backups/debconfsel.txt
 +# partitionsfile = /var/backups/partitions.__star__.txt
 +# hardwarefile = /var/backups/hardware.txt
 +# luksheadersfile = /var/backups/luksheader.__star__.bin
 +
 +# If vservers = yes in /etc/backupninja.conf then the following variables can
 +# be used:
 +# vsnames = all | <vserver1> <vserver2> ... (default = all)
 +</file>
 +++++
 +
 +Activer les backups pour la base de donnée MySQL (:!: uniquement sur **hexagon**)
 +
 +++++ Ajouter le fichier /etc/backup.d/20.mysql |
 +<file ini /etc/backup.d/20.mysql>
 +### backupninja MySQL config file ###
 +
 +# hotcopy = < yes | no > (default = no)
 +# make a backup of the actual database binary files using mysqlhotcopy.
 +hotcopy = no
 +
 +# sqldump = < yes | no > (default = no)
 +# make a backup using mysqldump. this creates text files with sql commands
 +# sufficient to recontruct the database.
 +#
 +sqldump = yes
 +
 +# sqldumpoptions = <options>
 +# (default = --lock-tables --complete-insert --add-drop-table --quick --quote-names)
 +# arguments to pass to mysqldump
 +# sqldumpoptions = --add-drop-table --quick --quote-names
 +
 +# compress = < yes | no > (default = yes)
 +# if yes, compress the sqldump output.
 +compress = yes
 +
 +# dbhost      = <host> (default = localhost)
 +
 +
 +# backupdir = <dir> (default: /var/backups/mysql)
 +# where to dump the backups. hotcopy backups will be in a subdirectory
 +# 'hotcopy' and sqldump backups will be in a subdirectory 'sqldump'
 +backupdir = /var/backups/mysql
 +
 +# databases = <all | db1 db2 db3 > (default = all)
 +# which databases to backup. should either be the word 'all' or a
 +# space separated list of database names.
 +databases = all
 +
 +configfile = /etc/mysql/debian.cnf
 +</file>
 +++++
 +
 +Tester avec
 +
 +<code>sudo backupninja -t -n</code>
 +
 +----
 +
 +===== Mise en place initiale de BorgBackup (ou Borg) =====
 +
 +==== Prérequis ====
 +  * Serveur de départ : ''borg''
 +  * Serveur d'arrivée : accessible en SSH. Un utilisateur dédié ''borg'' et son home accessible en SSH par l'utilisateur qui exécute borg sur le serveur de départ (typiquement ''root'') devra être créé (cf. ci-dessous)
 +
 +<wrap info></wrap>(nbsp) Exemple avec dodecagon, mais la procédure est la même pour chaque serveur.
 +
 +==== Installation de Borg ====
 +
 +Borg n'est disponible que via les backports pour jessie, on s'assurera donc que la ligne suivante est présente dans ''/etc/apt/source.list'' :
 +
 +<code>deb http://http.debian.net/debian jessie-backports main</code>
 +
 +Ensuite, on l'installe avec :
 +    apt update
 +    apt install -t jessie-backports borgbackup
 +
 +==== Configuration de borg ====
 +
 +Initialisation du répertoire ''/etc/borg-wrapper'' :
 +
 +<code>
 +dodecagon ~ # mkdir /etc/borg-wrapper
 +dodecagon ~ # touch /etc/borg-wrapper/common.conf
 +dodecagon ~ # touch /etc/borg-wrapper/{kdell.conf,quigon.conf}
 +</code>
 +
 +Les deux fichiers doivent être des fichiers bash valides.
 +
 +  * Le premier fichier (''/etc/borg-wrapper/common.conf'') contiennent la configuration liée au serveur source qui envoie ses données. On y trouve notamment la liste des chemins à inclure et ceux à exclure.
 +  * Les autres fichiers (''/etc/borg-wrapper/{kdell.conf,quigon.conf}'') servent juste à indiquer le dépôt de sauvegarde sur les deux autres serveurs.
 +
 +++++ config pour dodecagon (2017-05-08 18:33) |
 +<file bash common.conf>
 +# Common configuration for backups from dodecagon to any other server
 +
 +# This file is sourced by borg-wrapper.sh, and must be valid bash script.
 +
 +BORG_USER='borg'
 +
 +# INCLUDE and EXCLUDE are indexed arrays in bash.
 +INCLUDE=(
 + '/etc'
 + '/home'
 + '/root'
 + '/var/backups'
 + '/var/lib/ldap'
 + '/srv'
 +)
 +EXCLUDE=(
 + '.*/obnam-repository$'
 + '.*/obnam-repository-*'
 + '.*/\.cache'
 + '/root/.local/share/letsencrypt'
 + '/srv/ftp'
 +)
 +
 +# Only clean old backups when CLEAN_OLD_BACKUPS is exported from parent
 +# CLEAN_OLD_BACKUPS='true'
 +
 +# 1 month daily, half a year weekly, 3 year monthly
 +CLEANUP_POLICY=("--keep-daily=30" "--keep-weekly=26" "--keep-monthly=36")
 +</file>
 +
 +<file bash kdell.conf>
 +# Configuration for backups from dodecagon to kdell
 +
 +# This file is sourced by borg-wrapper.sh, and must be valid bash script.
 +
 +REMOTE="${BORG_USER}@kdell.federez.net:~borg/dodecagon"
 +</file>
 +
 +<file bash quigon.conf>
 +# Configuration for backups from dodecagon to quigon
 +
 +# This file is sourced by borg-wrapper.sh, and must be valid bash script.
 +
 +REMOTE="${BORG_USER}@quigon.federez.net:~borg/dodecagon"
 +</file>
 +
 +++++
 +
 +
 +==== Préparatifs sur un serveur de destination ====
 +
 +<wrap info></wrap>(nbsp) Opérations effectuées en ''root''. Vous pouvez aussi le faire avec ''sudo'' (pas ''sudo -E'') si vous préférez.
 +
 +<wrap info></wrap>(nbsp) Exemple ici avec kdell comme serveur de destination, à répéter pour chaque serveur de destination en adaptant les noms de serveurs.
 +
 +Ajout de l'utilisateur ''borg'':
 +
 +<wrap tip></wrap>(nbsp) Pour **kdell** on place le $HOME de borg dans ''/backup/borg'' pour profiter de la partition dédiée aux backups.
 +
 +<code>
 +kdell ~ # adduser --system --group --disabled-password --shell /bin/sh --home /backup/borg borg
 +</code>
 +
 +
 +
 +On prépare le fichier ''.ssh/authorized_keys'' pour permettre la connexion par clef publique depuis les autres serveurs.
 +
 +<code>
 +kdell ~ # cd ~borg
 +kdell ~borg # sudo -u borg mkdir .ssh
 +kdell ~borg # sudo -u borg touch .ssh/authorized_keys
 +kdell ~borg # chmod 600 .ssh/authorized_keys
 +kdell ~borg # vim .ssh/authorized_keys # ajouter les clefs publiques de root@hexagon et root@kdell
 +</code>
 +
 +On teste si la connexion sans mot de passe fonctionne depuis le serveur de départ (ici exemple avec dodecagon) et on en profite pour créer le dossier pour la sauvegarde (si pas déjà fait).
 +
 +    ssh borg@kdell.federez.net mkdir dodecagon
 +
 +Il faut ensuite créer le dépôt :
 +
 +    . /etc/borg-wrapper/common.conf
 +    . /etc/borg-wrapper/kdell.conf
 +    borg init --debug --encryption=none "${REMOTE}"
 +
 +===== Mise en place initiale d'obnam =====
 +
 +==== Prérequis ====
 +
 +  * Serveur de départ : ''obnam''
 +  * Serveur d'arrivée : accessible en SFTP. Un utilisateur dédié ''obnam'' et son home accessible en SFTP par l'utilisateur qui exécute obnam sur le serveur de départ (typiquement ''root'') devra être créé (cf. ci-dessous)
 +
 +<wrap info></wrap>(nbsp) Exemple avec hexagon, mais la procédure est la même pour chaque serveur.
 +
 +==== Installation d'obnam ====
 +
 +Utilisation des dépôts jessie-backports pour avoir une version assez récente. Dans ''/etc/apt/source.list'' ajouter (si nécessaire) :
 +
 +<code>deb http://http.debian.net/debian jessie-backports main</code>
 +
 +Puis ''apt-get update'' et avec l'aide d' ''aptitude'' par exemple choisir la version d'obnam provenant des backports.
 +
 +==== Préparatifs sur un serveur de destination ====
 +
 +<wrap info></wrap>(nbsp) Opérations effectuées en ''root''. Vous pouvez aussi le faire avec ''sudo'' si vous préférez.
 +
 +<wrap info></wrap>(nbsp) Exemple ici avec quigon comme serveur de destination, à répéter pour chaque serveur de destination en adaptant les noms de serveurs.
 +
 +Ajout de l'utilisateur ''obnam'':
 +
 +<wrap tip></wrap>(nbsp) Pour **dodecagon** on place le $HOME d'obnam dans ''/data/obnam'' pour profiter de la partition dédiée à obnam
 +
 +<code>
 +dodecagon ~ # adduser --system --group --disabled-password --shell /usr/lib/sftp-server --home /data/obnam obnam
 +</code>
 +
 +<wrap tip></wrap>(nbsp) Pour **hexagon** on place le $HOME d'obnam dans ''/home/obnam'' pour profiter de la grosse partition où se trouve ''/home''
 +
 +<code>
 +hexagon ~ # adduser --system --group --disabled-password --shell /usr/lib/sftp-server --home /home/obnam obnam
 +</code>
 +
 +<wrap tip></wrap>(nbsp) Pour **kdell** on place le $HOME d'obnam dans ''/backup/obnam'' pour profiter de la partition dédiée aux backups
 +
 +<code>
 +kdell~ # adduser --system --group --disabled-password --shell /usr/lib/sftp-server --home /backup/obnam obnam
 +</code>
 +
 +<wrap tip></wrap>(nbsp) Pour **quigon** on place le $HOME d'obnam dans ''/data/obnam'' pour profiter de la grosse partition où se trouve ''/data''
 +
 +<code>
 +quigon ~ # adduser --system --group --disabled-password --shell /usr/lib/sftp-server --home /data/obnam obnam
 +</code>
 +
 +On prépare le fichier ''.ssh/authorized_keys'' pour permettre la connexion par clef publique depuis les autres serveurs.
 +
 +<code>
 +quigon ~ # cd ~obnam
 +quigon ~obnam # sudo -u obnam mkdir .ssh
 +quigon ~obnam # sudo -u obnam touch .ssh/authorized_keys
 +quigon ~obnam # chmod 600 .ssh/authorized_keys
 +quigon ~obnam # vim .ssh/authorized_keys # ajouter les clefs publiques de root@hexagon et root@kdell
 +</code>
 +
 +On teste si la connexion sans mot de passe fonctionne depuis le serveur de départ (ici exemple avec hexagon) et on en profite pour créer le repository pour la sauvegarde (si pas déjà fait).
 +
 +<code>
 +hexagon ~ # sftp obnam@quigon.federez.net
 +sftp> mkdir obnam-repository-hexagon
 +sftp> ^D
 +</code>
 +
 +==== Configuration d'obnam ====
 +
 +Initialisation du répertoire ''/etc/obnam'' :
 +
 +<code>
 +hexagon ~ # mkdir /etc/obnam && cd /etc/obnam
 +hexagon obnam # touch obnam_hexagon.conf
 +hexagon obnam # touch to_kdell.profile
 +hexagon obnam # touch to_quigon.profile
 +</code>
 +
 +=== Contenu des fichiers de config ===
 +
 +  * Le premier fichier (''obnam_<servername>.conf'') correspond à la conf spécifique au serveur qui crée et envoie ses sauvegardes. On y trouve notamment la liste des chemins à inclure et ceux à exclure.
 +  * Les deux fichiers suivants (''to_<servername>.profile'') servent juste à pointer vers le dépôt de sauvegarde sur les deux autres serveurs.
 +
 +<wrap important>Attention pour les options ''root'' et ''exclude'' : le dernier élément ne doit **pas** se terminer avec une virgule !</wrap>
 +
 +++++ config pour hexagon (2016-05-01 15:40) |
 +<file ini obnam_hexagon.conf>
 +[config]
 +client-name = hexagon
 +root = /etc,
 +       /home,
 +       /root,
 +       /var/backups,
 +       /var/lib/ldap,
 +       /var/lib/mailman
 +exclude = .*/obnam-repository$,
 +  .*/obnam-repository-*,
 +  .*/\.cache,
 +  /home/duplicity,
 +  /home/ftp,
 +  /root/.local/share/letsencrypt,
 +  /srv/ftp
 +log = /var/log/obnam.log
 +log-level = info
 +log-max = 10000000
 +log-keep = 10
 +log-mode = 0600
 +one-file-system = yes
 +keep = 20h,30d,52w,10y
 +upload-queue-size = 512
 +lru-size = 1024
 +lock-timeout = 900
 +</file>
 +
 +<file ini to_kdell.profile>
 +[config]
 +repository = sftp://obnam@kdell.federez.net/~/obnam-repository-hexagon
 +</file>
 +
 +<file ini to_quigon.profile>
 +[config]
 +repository = sftp://obnam@quigon.federez.net/~/obnam-repository-hexagon
 +</file>
 +++++
 +
 +++++ config pour quigon (2016-05-01 15:40) |
 +<file ini obnam_quigon.conf>
 +[config]
 +client-name = quigon
 +root = /etc,
 +       /home,
 +       /root,
 +       /srv/dokuwiki,
 +       /var/backups,
 +       /var/lib/ldap,
 +       /var/lib/mailman
 +exclude = .*/obnam-repository$,
 +  .*/obnam-repository-*,
 +  .*/\.cache$,
 +  /home/backup_cyric,
 +  /home/backup_quigon,
 +  /home/kage/Federez,
 +  /home/zertrin/restore-nautilus,
 +  /root/.local/share/letsencrypt,
 +log = /var/log/obnam.log
 +log-level = info
 +log-max = 1000000
 +log-keep = 10
 +log-mode = 0600
 +one-file-system = yes
 +keep = 20h,30d,52w,10y
 +upload-queue-size = 512
 +lru-size = 1024
 +lock-timeout = 900
 +</file>
 +
 +<file ini to_kdell.profile>
 +[config]
 +repository = sftp://obnam@kdell.federez.net/~/obnam-repository-quigon
 +</file>
 +
 +<file ini to_hexagon.profile>
 +[config]
 +repository = sftp://obnam@hexagon.federez.net/~/obnam-repository-quigon
 +</file>
 +++++
 +
 +++++ config pour kdell (2016-05-01 15:40) |
 +<file ini obnam_kdell.conf>
 +[config]
 +client-name = kdell
 +root = /etc,
 +       /home,
 +       /root,
 +       /var/backups
 +exclude = .*/obnam-repository$,
 +  .*/\.cache$,
 +  /root/.local/share/letsencrypt,
 +log = /var/log/obnam.log
 +log-level = info
 +log-max = 1000000
 +log-keep = 10
 +log-mode = 0600
 +one-file-system = yes
 +keep = 20h,30d,52w,10y
 +upload-queue-size = 512
 +lru-size = 1024
 +lock-timeout = 900
 +</file>
 +
 +<file ini to_hexagon.profile>
 +[config]
 +repository = sftp://obnam@hexagon.federez.net/~/obnam-repository-kdell
 +</file>
 +
 +<file ini to_quigon.profile>
 +[config]
 +repository = sftp://obnam@quigon.federez.net/~/obnam-repository-kdell
 +</file>
 +++++
 +
 +==== Test première sauvegarde ====
 +
 +Exemple depuis hexagon vers quigon:
 +
 +<code>obnam --config /etc/obnam/to_quigon.profile backup</code>
 +
 +==== Purger les vieilles générations selon une politique donnée ====
 +
 +L'option ''keep = 20h,30d,52w,10y'' dans le fichier de config correspond à la politique suivante :
 +
 +  * garder les 20 dernières générations horaires (comme le script est lancé toutes les 4 heures, ca fait garder les générations horaires pour un peu plus de 3 jours (20*4 = 80 heures))
 +  * garder les 30 dernières générations journalières
 +  * garder les 52 dernières générations hebdomadaires
 +  * garder les 10 dernières générations annuelles
 +
 +En appelant la commande suivante une fois par jour, les générations qui sont superflues sont supprimées de l'archive.
 +
 +Exemple depuis hexagon avec l'archive située sur quigon :
 +
 +<code>obnam --config /etc/obnam/to_quigon.profile forget</code>
 +
 +==== Mise en place des cron pour obnam ====
 +
 +Les crons se trouvent dans ''/etc/cron.d/obnam-backup'' et ''/etc/cron.d/obnam-forget''
 +
 +++++ Les /etc/cron.d/obnam-backup sur les 3 serveurs |
 +
 +**hexagon**
 +<file text /etc/cron.d/obnam-backup>
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +35 1-21/4 * * * root obnam --config /etc/obnam/to_kdell.profile backup 1>/dev/null
 +40 3-23/4 * * * root obnam --config /etc/obnam/to_quigon.profile backup 1>/dev/null
 +</file>
 +
 +**quigon**
 +<file text /etc/cron.d/obnam-backup>
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +35 1-21/4 * * * root obnam --config /etc/obnam/to_hexagon.profile backup 1>/dev/null
 +40 3-23/4 * * * root obnam --config /etc/obnam/to_kdell.profile backup 1>/dev/null
 +</file>
 +
 +**kdell**
 +<file text /etc/cron.d/obnam-backup>
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +35 1-21/4 * * * root obnam --config /etc/obnam/to_quigon.profile backup 1>/dev/null
 +40 3-23/4 * * * root obnam --config /etc/obnam/to_hexagon.profile backup 1>/dev/null
 +</file>
 +
 +++++
 +
 +
 +++++ Les /etc/cron.d/obnam-forget sur les 3 serveurs |
 +
 +**hexagon**
 +<file text /etc/cron.d/obnam-forget>
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +25 0 * * * root obnam --config /etc/obnam/to_kdell.profile forget 1>/dev/null
 +30 2 * * * root obnam --config /etc/obnam/to_quigon.profile forget 1>/dev/null
 +</file>
 +
 +**quigon**
 +<file text /etc/cron.d/obnam-forget>
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +25 0 * * * root obnam --config /etc/obnam/to_hexagon.profile forget 1>/dev/null
 +30 2 * * * root obnam --config /etc/obnam/to_kdell.profile forget 1>/dev/null
 +</file>
 +
 +**kdell**
 +<file text /etc/cron.d/obnam-forget>
 +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 +25 0 * * * root obnam --config /etc/obnam/to_quigon.profile forget 1>/dev/null
 +30 2 * * * root obnam --config /etc/obnam/to_hexagon.profile forget 1>/dev/null
 +</file>
 +
 +++++
 +
 +<code>
 +                                       . . . 0 . . .
 +                                   55                  5
 +                                                     .
 +                                                       .
 +                                                         .
 +                           50                |                 10
 + H <- K <- Q              .                  |
 +                                                         .
 + | backup  | +-----+                                                   H -> K -> Q
 + +---------+                                                                   +
 +toutes les 4h      |    45  +----------------------------------+ 15   +----+ | forget  |
 + de 3h à 23h                                                  |      +---------+
 +                                                              |    seulement à 0h25
 +                                                              |
 +                                                                  |
 +                   +----> 40                                 20     |
 +                                                                |
 + H -> K -> Q                                                    |
 +                                                            |      H <- K <- Q
 + | backup  | +------------------> 35                   25 <-----------+      +         ^
 + +---------+                           . . . 30 . . .                    +-+ | forget  |
 +toutes les 4h                                ^                             +---------+
 + de 1h à 21h                                 +---------------------------+ seulement à 2h30
 +
 +</code>
 +
 +----
 +
 +====== Duplicity ======
 +
 +<WRAP center round alert>
 +Le système de sauvegarde utilisant ''duplicity'' avec le wrapper ''duplicity-backup.sh'' a été migré vers une nouvelle solution utilisant ''obnam''. (Zertrin 2016-02-14 23:15)
 +</WRAP>
 +
 +Page concernant les backups avec duplicity est archivée ici : [[admin:services:backup-duplicity|admin:services:backup-duplicity]]
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki