Comment installer et utiliser Duplicity pour automatiser les sauvegardes

Sauvegardes automatisées Duplicity ubuntu redhat centos debian windows macos

Duplicity est un puissant outil de sauvegarde open source qui permet d’effectuer des sauvegardes chiffrées et incrémentielles. Il prend en charge une variété de backends pour stocker les données de sauvegarde, y compris des systèmes de fichiers locaux ou distants, FTP, SSH, WebDAV et des services de stockage dans le cloud. Duplicity utilise GnuPG pour le chiffrement et la signature des archives de sauvegarde.

Dans ce guide complet, nous couvrirons comment installer et configurer Duplicity, puis l’utiliser pour configurer des sauvegardes automatisées sur Linux.

Installation de Duplicity

Duplicity est disponible dans les dépôts par défaut de la plupart des distributions Linux.

Sur Debian/Ubuntu

$ sudo apt update
$ sudo apt install duplicity

Sur CentOS/RHEL

$ sudo yum install epel-release
$ sudo yum update
$ sudo yum install duplicity

Sur Arch Linux

$ sudo pacman -S duplicity

Sur Fedora

$ sudo dnf install duplicity

Pour les autres distributions Linux, consultez votre gestionnaire de paquets.

Une fois installé, vérifiez que Duplicity est disponible en vérifiant la version :

$ duplicity --version

Génération des clés GPG

Duplicity utilise les clés GnuPG pour chiffrer et/ou signer les archives de sauvegarde. Nous devons générer une paire de clés à cette fin.

Importez le paquet d’outils GPG s’il n’est pas déjà installé :

$ sudo apt install gnupg

Générez une nouvelle paire de clés avec le chiffrement RSA.

$ gpg --gen-key

Choisissez le type de clé comme “RSA et RSA” avec une taille de 4096 bits. Définissez une période d’expiration si désiré.

Fournissez vos informations pour l’ID utilisateur telles que nom, e-mail, etc. Ajoutez une phrase de passe sécurisée pour les clés. Cela va générer une paire de clés publique/privée pour vous.

Listez les clés pour trouver l’ID :

$ gpg --list-keys

Exportez la clé publique pour la sauvegarde. Substituez l’ID en conséquence :

$ gpg -a --export 1234ABCD > public.gpg

La clé publique doit être transférée à tout backend distant que vous avez l’intention d’utiliser, comme SSH ou le stockage cloud. La clé privée doit être conservée en toute sécurité sur le système local pour effectuer les sauvegardes.

Configuration de Duplicity

Duplicity prend en charge une variété de backends de stockage tels que local, SSH, FTP, WebDAV, etc. Nous allons regarder la configuration de certains backends courants :

Système de fichiers local

Pour sauvegarder dans un répertoire local, définissez l’URL de destination de sauvegarde comme :

file:///home/user/backups

SSH

Pour sauvegarder vers un système distant via SSH :

ssh://user@host//path/to/backup

Cela suppose que vous avez configuré l’accès SSH entre les systèmes.

Amazon S3

Pour sauvegarder dans un bucket Amazon S3 :

s3://s3-bucket-name[/prefix]

Les informations d’identification S3 peuvent être fournies via un fichier ~/.boto config ou des variables d’environnement.

Voir la documentation Duplicity S3 Backend pour plus de détails.

Google Cloud Storage

Pour sauvegarder sur Google Cloud Storage :

gs://cloud-storage-bucket[/prefix] 

L’authentification peut se faire par divers moyens, y compris des fichiers de compte de service, des fichiers ADC JSON ou des variables d’environnement.

Reportez-vous à la section GCS Backend dans la documentation pour plus de détails.

Swift

Pour sauvegarder dans un conteneur OpenStack Swift :

swift://container_name[/prefix]

L’authentification se fait via des variables d’environnement. Voir la documentation Swift Backend.

WebDAV

Pour utiliser un serveur WebDAV comme backend :

webdav[s]://hostname[:port]/path

Duplicity vous demandera le nom d’utilisateur/mot de passe si nécessaire.

Voir WebDAV Backend pour plus de détails.

De cette manière, vous pouvez configurer des sauvegardes vers une variété de points de terminaison de stockage. Maintenant, nous sommes prêts à créer notre première sauvegarde.

Création de sauvegardes

Avec l’URL de backend configurée, nous pouvons maintenant effectuer une sauvegarde complète.

Définissez la variable d’environnement suivante pour éviter les invites interactives :

$ export PASSPHRASE=your_passphrase

Exécutez ensuite une sauvegarde complète :

$ duplicity /path/to/source dir file:///path/to/destination

Cela sauvegardera de manière récursive le répertoire /path/to/source vers la destination locale /path/to/destination.

Pour sauvegarder vers un emplacement distant via SSH :

$ duplicity /path/to/source ssh://user@host//backup/path

Pour sauvegarder vers le stockage cloud :

$ duplicity /local/source s3://s3-bucket[/prefix]

Duplicity vous invitera pour toute information d’identification requise comme le mot de passe SSH ou les clés secrètes AWS. La sauvegarde sera chiffrée et stockée dans la destination.

Pour sauvegarder uniquement certains dossiers, spécifiez-les en tant que chemins à inclure. Par exemple :

$ duplicity include /path/to/folders1 include /path/to/folders2 /path/to/source file:////path/to/destination

Cela sauvegardera uniquement les dossiers spécifiés de la source.

Après la sauvegarde complète initiale, les sauvegardes consécutives seront incrémentielles. Cela permet de gagner du temps et de l’espace de stockage. Duplicity utilise librsync pour déterminer efficacement le contenu modifié.

Pour forcer une sauvegarde complète au lieu d’une incrémentielle, utilisez l’option --full-if-older-than :

$ duplicity --full-if-older-than 60D /path/to/source ssh://user@host//path/to/backup

Cela fera une sauvegarde complète si la dernière sauvegarde complète date de plus de 60 jours.

Planification des sauvegardes avec Cron

Nous pouvons automatiser les sauvegardes Duplicity à l’aide de tâches Cron.

Ouvrez le crontab pour l’édition :

$ crontab -e

Ajoutez un programme Cron comme :

0 1 * * * /usr/bin/duplicity /path/to/source ssh://user@host//backup/path

Cela exécutera un travail de sauvegarde tous les jours à 1h du matin.

Pour des sauvegardes hebdomadaires :

0 1 * * 0 /usr/bin/duplicity /path/to/source ssh://user@host//backup/path

Cela déclenchera la sauvegarde tous les dimanches à 1h du matin.

De même, vous pouvez planifier des sauvegardes mensuelles, annuelles, etc.

Pour un contrôle plus précis, vous pouvez déclencher des tâches complètes et incrémentielles séparées :

0 1 * * * /usr/bin/duplicity --full-if-older-than 30D /path/to/source ssh://user@host//path/to/full/backup
0 */4 * * * /usr/bin/duplicity /path/to/source ssh://user@host//path/to/incr/backup

Cela exécutera une sauvegarde complète le 1er du mois et une incrémentielle toutes les 4 heures.

N’oubliez pas de rediriger la sortie si les tâches produisent beaucoup de résultats pour éviter les spams par e-mail Cron.

Restauration des sauvegardes

Pour restaurer la dernière version de sauvegarde :

$ duplicity restore ssh://user@host//backup/path /local/restore/path

Cela restaurera la sauvegarde disponible à l’emplacement distant vers le chemin local spécifié.

Pour restaurer une version antérieure à partir d’une date spécifique :

$ duplicity restore --time 2020-01-01T12:30:00 ssh://user@host//backup/path /local/restore/path

Listez toutes les versions de sauvegarde stockées :

$ duplicity collection-status ssh://user@host//backup/path

Supprimez les anciennes sauvegardes :

$ duplicity remove-older-than 6M --force ssh://user@host//backup/path

Cela supprimera toutes les versions de sauvegarde datant de plus de 6 mois.

De cette façon, vous pouvez gérer vos archives sauvegardées. Restaurer les versions sélectionnées lorsque nécessaire.

Duplicity sur Mac avec Homebrew

Sur MacOS, Duplicity peut être installé via Homebrew :

$ brew install duplicity

L’utilisation reste la même que sur Linux :

$ duplicity /path/to/source /path/to/destination

Planifiez la sauvegarde cron de la même manière en utilisant le crontab natif :

$ crontab -e

Duplicity sur Windows

Duplicity peut être installé sur Windows en utilisant l’environnement Linux Cygwin.

Tout d’abord, installez Cygwin avec les paquets rsync et python.

Ensuite, installez Duplicity via pip :

C:\> pip install duplicity

Maintenant, vous pouvez utiliser Duplicity pour sauvegarder des fichiers localement ou vers des partages Windows distants :

C:\> duplicity C:\Users\user\Documents E:\Backups

Automatisez les sauvegardes planifiées à l’aide du Planificateur de tâches.

Un port natif Windows de Duplicity appelé cwDup est également disponible, bien qu’avec une fonctionnalité réduite.

Bonnes pratiques pour Duplicity

Voici quelques bonnes pratiques à suivre lors de l’utilisation de Duplicity :

  • Sauvegarder vers un stockage distant ou hors ligne pour se protéger contre les logiciels malveillants, les rançongiciels, etc.
  • Chiffrer et signer les sauvegardes pour assurer la sécurité. Protégez votre clé privée GPG par une phrase de passe.
  • Valider les sauvegardes en effectuant des restaurations périodiquement.
  • Conserver plusieurs versions mais éliminer les anciennes sauvegardes pour économiser de l’espace.
  • Stocker les métadonnées comme les clés GPG et les configurations séparément des données de sauvegarde.
  • Tester que les sauvegardes fonctionnent avant de compter sur elles pour les restaurations.
  • Automatiser selon un calendrier mais aussi sauvegarder manuellement après des changements importants.
  • Envoyer les journaux/notifications de sauvegarde pour surveiller le statut des tâches.
  • Diviser les gros volumes sur plusieurs disques pour un meilleur débit.
  • Prendre des instantanés de sauvegarde pour éviter de sauvegarder des fichiers ouverts dans un état instable.
  • Isoler les sauvegardes du réseau avec un air gap pour une sécurité maximale.

Conclusion

Duplicity est une solution open source robuste pour des sauvegardes chiffrées incrémentielles. Il offre beaucoup de flexibilité dans les options de stockage backend. L’utilisation du chiffrement GPG permet des transferts sécurisés et un stockage sûr des archives de sauvegarde.

Avec ce guide, vous devriez maintenant être capable de configurer des tâches de sauvegarde Duplicity automatisées vers un emplacement local ou distant. Stocker les sauvegardes hors site ou dans le cloud protège contre les désastres locaux et fournit une redondance.

Des tests et validations réguliers des sauvegardes garantissent que vos données sont protégées en cas de besoin pour des restaurations. Suivre les bonnes pratiques en matière de sécurité, de validation et de surveillance contribue à maintenir des sauvegardes robustes.

Laisser un commentaire