Récupération des données sauvegardées chez OVH avec duplicity

Les commandes utiles pour lister et récupérer ses fichiers une fois que l'on a sauvegardé ses données dans le Public Cloud OVH avec duplicity.

Depuis le 24 mars 2020, et le passage de la version 2 à la version 3 de l’API Keystone par OVH, cet article est obsolète. Veuillez consulter l’article «Mettre en place une sauvegarde chez OVH avec Duplicity» pour la version à jour.

Nous avons récemment choisi de sauvegarder nos données dans le Public Cloud de OVH. Et pour cela, nous avions utilisé duplicity. Nous l’avons laissé tourner pendant un bon mois avant d’effectuer notre premier exercice de récupération de données.

Récupérer une donnée. StockSnap @ Pixabay

Aujourd'hui, on va vérifier que tout ce que l'on a sauvegardé depuis un mois est bien sur le serveur et récupérable. Bon, comme on n'est pas des boulets non plus, on a déjà fait des tests le jour où l'on a tout mis en place.

En sauvegardant des données bidons, on avait tenté des les rapatrier sans problèmes. Les jours d’après, on avait vérifié que le cron marchait bien, en vérifiant les dates des derniers fichiers dans l’interface de OVH. Mais bon, cela n'empêche pas de stresser un minimum lors de la première récupération. On ne peut pas s'empêcher de se demander si quelque chose à merdé.

On va utiliser duplicity pour la récupération des données, en se servant des mêmes informations de configuration que lors de la sauvegarde.

Lister les fichiers

La première commande intéressante est de lister ce que l'on a sauvegardé.

Ca peut paraître bête dit comme ça, mais comme tous les fichiers s'appellent "duplicity-qqch", ce n'est pas forcément pratique pour retrouver ce que l'on a sauvegardé.

Afin de récupérer le listing de ce qui est sauvegardé, la commande est duplicity list-current-files. Comme nous sommes dans le cas d’une sauvegarde sur Public Cloud OVH, il nous faut ajouter les informations swift adéquates, comme nous l’avions fait lors du backup.

La commande finale est la suivante :

SWIFT_AUTHURL=<SWIFT_AUTHURL>         \
SWIFT_AUTHVERSION=<SWIFT_AUTHVERSION> \
SWIFT_TENANTNAME=<SWIFT_TENANTNAME>   \
SWIFT_REGIONNAME=<SWIFT_REGIONNAME>   \
SWIFT_PASSWORD=<SWIFT_PASSWORD>       \
SWIFT_USERNAME=<SWIFT_USERNAME>       \
duplicity  list-current-files  \
    --encrypt-key <key id>    \
    --sign-key <key id>       \
    --cf-backend swift <src>

Dont voici la signification des paramètres :

Evidement, si vous avez backupé énormément de choses, la liste va être interminable. Mais au moins, ça permet d’avoir une bonne idée de ce qui est backupé. Et donc, de vérifier à première vue s’il y a un couac. N’hésitez pas à utiliser grep si vous cherchez un fichier en particulier.

Récupérer un fichier en particulier

Quand on parle du loup…

On sait que nos fichiers sont bien sur le serveur distant. On les backupés, on a vérifié leur présence via l’interface web d’OVH et via list-current-files. Maintenant, ce qu’on aimerait vraiment, c’est récupérer un fichier parmi tous ceux que l’on a backupé.

Pour récupérer un fichier en particulier, nous allons utiliser la commande duplicity avec l’option file-to-restore et lui indiquer le chemin du fichier à récupérer. L‘arborescence des fichiers dans le backup est la même que celle du pc à sauvegarder.

Ce qui nous donne la commande suivante :

SWIFT_AUTHURL=<SWIFT_AUTHURL>         \
SWIFT_AUTHVERSION=<SWIFT_AUTHVERSION> \
SWIFT_TENANTNAME=<SWIFT_TENANTNAME>   \
SWIFT_REGIONNAME=<SWIFT_REGIONNAME>   \
SWIFT_PASSWORD=<SWIFT_PASSWORD>       \
SWIFT_USERNAME=<SWIFT_USERNAME>       \
duplicity                                 \
    --file-to-restore <chemin du fichier> \
    --encrypt-key <key id>                \
    --sign-key <key id>                   \
    --cf-backend <src> ./

Dont voici la signification des paramètres :

Récupérer tous les fichiers

Dès fois, il peut être utile de tout récupérer en une seule fois. Particulièrement en cas de crash disque, afin de pouvoir remettre en place son infrastructure sur un nouveau disque. Par contre, en fonction du nombre de données sauvegardées, ça peut être relativement long. Pour cela, la commande adéquate est :

SWIFT_AUTHURL=<SWIFT_AUTHURL>         \
SWIFT_AUTHVERSION=<SWIFT_AUTHVERSION> \
SWIFT_TENANTNAME=<SWIFT_TENANTNAME>   \
SWIFT_REGIONNAME=<SWIFT_REGIONNAME>   \
SWIFT_PASSWORD=<SWIFT_PASSWORD>       \
SWIFT_USERNAME=<SWIFT_USERNAME>       \
duplicity                  \
    --verbosity notice     \
    --encrypt-key <key id> \
    --sign-key <key id>    \
    --num-retries 3        \
    --cf-backend swift     \
    --cf-backend <src> <dst>

Dont voici la signification des paramètres :

Pour aller plus loin

Vous pouvez maintenant récupérer les données que vous avez sauvegardé avec duplicity sur le Cloud de OVH. Je ne saurais trop vous conseiller de garder les informations de connexion et vos clefs en sécurité dans un coin, car si l’ordinateur sur lesquels vous les avez stockés venait à crasher ou à disparaître lors d’un incendie, vous ne pourriez plus récupérer vos données.