Cette documentation est destinée à la gestion des backups par les clients, principalement des machines virtuelles et HAG.

Les admins système de Koumbit voudront plutôt consulter les pages suivantes:

Machines virtuelles

Si vous avez un serveur virtuel chez Koumbit et que vous avez un forfait de sauvegardes hebdomadaires, vous avez donc des backups RdiffBackup configurés avec BackupNinja.

Ne pas toucher aux fichiers de configuration de backupninja dans /etc/backup.d. Ils seraient ré-écrits par Puppet dans l'heure suivante et les changements seraient perdus!

borg

Lister les backups:

 $ sudo borg list ssh://backup-example.koumbit.net@backup.koumbit.net/srv/example.koumbit.net/borg
...
2020-06-01T05:00:04                  Mon, 2020-06-01 05:00:06 [03db2303c044b0d1fc50be19190c3ce566b9f912c994e37dce3c445ef63cabdc]
2020-06-02T05:00:04                  Tue, 2020-06-02 05:00:06 [e3833850d9969e2b40135e2fac4f9d88d80e0b664b92f0251417fe91cb4f854f]

Mounter un backup spécifique en FUSE:

$ sudo su
$ tmux
$ mktemp -d
/tmp/tmp.R7fMCamDDq
$ borg mount ssh://backup-example.koumbit.net@backup.koumbit.net/srv/example.koumbit.net/borg::2020-06-02T05:00:04 /tmp/tmp.R7fMCamDDq

Note Faire ça dans un tmux. Si le backup est large, le processus peut consommer du temps et mémoire important. (~16G RAM et 25min pour 2To)

Par la suite les fichiers peuvent être copier normalement. Eg. rsync en local, cp -r, etc.

Démonter un dossier borg:

sudo borg

rdiff-backup

Les backups sont stockés sur une machine accessible sous backup.koumbit.net. On assume ici que votre machine se nomme foo.koumbit.net, ce qui vous donne un nom d'utilisateur backup-foo.koumbit.net@backup.koumbit.net. Vous pouvez ensuite construire l'URL vers vos backups rdiff en ajoutant :: et le chemin vers les backups, donc par exemple: backup-foo.koumbit.net@backup.koumbit.net::/backup/foo.koumbit.net/rdiff-backup/.

Quelques exemples:

Obtenir les variables de configuration pertinentes pour un serveur

    cat /etc/backup.d/90_default-rdiff-backup.rdiff | grep -E "directory = |host =| user ="
TODO
faire une ligne qui permet d'extraire ces valeurs et de rouler la commande de backup sur CWD
Lister l'historique des backups
  • $ sudo rdiff-backup -l backup-foo.koumbit.net@backup.koumbit.net::/backup/foo.koumbit.net/rdiff-backup/
    Found 7 increments:
        increments.2014-12-30T03:01:50-05:00.dir   Tue Dec 30 03:01:50 2014
        increments.2014-12-31T03:02:04-05:00.dir   Wed Dec 31 03:02:04 2014
        increments.2015-01-01T03:02:00-05:00.dir   Thu Jan  1 03:02:00 2015
        increments.2015-01-02T03:01:45-05:00.dir   Fri Jan  2 03:01:45 2015
        increments.2015-01-03T03:02:04-05:00.dir   Sat Jan  3 03:02:04 2015
        increments.2015-01-04T03:01:47-05:00.dir   Sun Jan  4 03:01:47 2015
        increments.2015-01-05T03:01:32-05:00.dir   Mon Jan  5 03:01:32 2015
    Current mirror: Tue Jan  6 03:01:36 2015
Inclure l'espace utilisé dans le listing (plus long)
  • $ sudo rdiff-backup -l --list-increment-sizes backup-foo.koumbit.net@backup.koumbit.net::/backup/foo.koumbit.net/rdiff-backup/
Restaurer un répertoire
  • $ sudo rdiff-backup -r 2015-01-05T03:01:32-05:00 backup-foo.koumbit.net@backup.koumbit.net::/backup/foo.koumbit.net/rdiff-backup/home/antoine antoine
  • Ceci va extraire le répertoire personnel du user antoine tel qu'il était le 5 janvier 2015 à 3h du matin dans le répertoire courant.

Lister le contenu d'un backup
  • rdiff-backup --list-at-time 48h backup-foo.koumbit.net@backup.koumbit.net::/backup/foo.koumbit.net/rdiff-backup/

Noter qu'il est important d'utiliser sudo car seule la clé SSH du user root a accès au serveur de backups. Notez également les différents formats d'heures qui peuvent être utilisés, par exemple now (backup le plus récent), 48h (il y a deux jours) ou 2015-01-05T03:01:32-05:00 (date précise du backup).

Then sometimes you have to merge the directories you recovered with the ones that are still there. Especially with Mail, or example. Here is one I did:

$ ls -la | grep Maildir
drwxr-xr-x 11 foo admins     4096 nov  5 23:28 Maildir
$ sudo rsync -Pavvu --dry-run Maildir/ /var/alternc/mail/m/machin.foo_dude.ca/Maildir/

Pay attention to the / at the end of the directory paths, rsync cares about those. And then run it without the dry-run for realzies. Then don't forget to go properly chown all the recovered files!

$ sudo ls -la /var/alternc/mail/m/machin.foo_dude.ca/Maildir/
drwxr-xr-x 11 foo admins  4096 nov  5 23:28 .
drwxr-xr-x  3  2407 vmail   4096 jun 28  2010 ..
$ sudo chown -R 2407:vmail /var/alternc/mail/m/machin.foo_dude.ca/Maildir/

HAG

Documentation manquante: expliquer les backups mysql et qu'on charge pour les restore...

Procédure pour restaurer les backups des comptes

Fichiers et NFS

Les fichier sont sur le NFS donc sur orion.koumbit.net dans /var/alternc/html/m/moncompte et les backup se trouve sur backup.koumbit.net dans /srv/backup/orion.koumbit.net/ I faut donc un accès root au serveur NFS

Le repertoire /var/alternc/html est séparré en 4

D'abord vérifier s'il y a des backups présent en envoyant la commande à partir du client (orion.koumbit.net)

root@orion:/# rdiff-backup -l backup-orion@backup.koumbit.net::/backup/orion.koumbit.net/html-t-z0-9/srv/alternc/html/t/test
Found 2 increments:
    test.2017-03-25T14:37:46-04:00.dir   Sat Mar 25 14:37:46 2017
    test.2017-03-27T13:27:52-04:00.dir   Mon Mar 27 13:27:52 2017
Current mirror: Wed Mar 29 13:14:46 2017

On peut ensuite restaurer le bon incrément

nous somme le 30 donc, on va prendre le backup d'il y a 3 jours, ou 72h

# La commande ressemble à ça! 
# root@orion:/# rdiff-backup -r <TIME> backup-orion@backup.koumbit.net::/backup/orion.koumbit.net/<DIRECTORY TO RESTORE> <TARGET DIRECTORY> 

root@orion:/# rdiff-backup -r 72 backup-orion@backup.koumbit.net::/backup/orion.koumbit.net/html-t-z0-9/srv/alternc/html/t/test /var/alternc/t/test

Bases de données

voir ici BackupMaintenance#Databases

Courriels

Voir ici BackupMaintenance#Emails

BackupGuide (last edited 2020-10-06 13:50:54 by emmanuel)