Comment installer Duplicity pour la sauvegarde incrémentielle sous Linux
L’expérience montre qu’on n’est jamais trop paranoïaque à propos des sauvegardes du système. Lorsqu’il s’agit de protéger et de préserver des données précieuses, il est préférable d’aller plus loin et de s’assurer que vous pouvez compter sur vos sauvegardes si le besoin s’en fait sentir.
Même aujourd’hui, alors que certains fournisseurs de cloud et d’hébergement proposent des sauvegardes automatisées pour les VPS à un coût relativement faible, vous feriez bien de créer votre propre stratégie de sauvegarde à l’aide de vos propres outils afin d’économiser de l’argent, puis peut-être de l’utiliser pour acheter du stockage supplémentaire ou obtenir un VPS plus grand.
Cela vous semble intéressant ? Dans cet article, nous allons vous montrer comment utiliser un outil appelé Duplicity pour sauvegarder et chiffrer des fichiers et des répertoires. De plus, l’utilisation de sauvegardes incrémentielles pour cette tâche nous aidera à économiser de l’espace.
Cela dit, commençons.
Installation de l’outil de sauvegarde Duplicity sous Linux
Pour installer duplicity dans les distributions basées sur RHEL, vous devrez d’abord activer le dépôt EPEL (vous pouvez omettre cette étape si vous utilisez Fedora lui-même).
Sur RHEL 9 :
subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
Sur CentOS 9, AlmaLinux 9, Rocky Linux 9 :
dnf config-manager --set-enabled crb
dnf install epel-release
Sur RHEL 8 :
subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
Sur CentOS 9, AlmaLinux 9, Rocky Linux 9 :
dnf config-manager --set-enabled powertools
dnf install epel-release
Puis courez,
dnf install duplicity
Pour les distributions basées sur Debian telles que Ubuntu et Linux Mint.
sudo apt update
sudo apt install duplicity
En théorie, de nombreuses méthodes de connexion à un serveur de fichiers sont prises en charge, bien que seuls ssh/scp/sftp, l’accès aux fichiers locaux, rsync, ftp, HSI, WebDAV et Amazon S3 aient été testés dans la pratique jusqu’à présent.
Une fois l’installation terminée, nous utiliserons exclusivement sftp dans divers scénarios, à la fois pour sauvegarder et restaurer les données.
Notre environnement de test se compose d’une machine RHEL 8 (à sauvegarder) et d’une machine Debian 11 (serveur de sauvegarde).
Création de clés SSH pour la connexion sans mot de passe au serveur distant
Commençons par créer les clés SSH dans notre boîte RHEL et les transférer sur le serveur de sauvegarde Debian.
Si vous exécutez SSH sur un autre port, la commande ci-dessous suppose que le démon sshd est à l’écoute sur le port XXXXX du serveur Debian. Remplacez AAA. BBB. CCC.DDD avec l’adresse IP réelle du serveur distant.
ssh-keygen -t rsa
ssh-copy-id [email
ssh-copy-id -p XXXXX [email
Ensuite, vous devez vous assurer que vous pouvez vous connecter au serveur de sauvegarde sans utiliser de mot de passe :
ssh [email
Nous devons maintenant créer les clés GPG qui seront utilisées pour le chiffrement et le déchiffrement de nos données :
gpg2 --full-gen-key
Vous serez invité à entrer :
- Type de clé
- Taille de la clé
- La durée de validité de la clé
- Une phrase de passe
Pour créer l’entropie nécessaire à la création des clés, vous pouvez vous connecter au serveur via une autre fenêtre de terminal et effectuer quelques tâches ou exécuter des commandes pour générer de l’entropie (sinon vous devrez attendre longtemps pour que cette partie du processus se termine).
Une fois les clés générées, vous pouvez les lister comme suit :
gpg --list-keys
La chaîne surlignée en jaune ci-dessus est connue sous le nom d’ID de clé publique et constitue un argument demandé pour chiffrer vos fichiers.
Création d’une sauvegarde Linux avec duplicité
Pour commencer simplement, ne sauvegardez que le répertoire /var/log, à l’exception de /var/log/anaconda et /var/log/sa.
Comme il s’agit de notre première sauvegarde, elle sera complète. Les exécutions suivantes créeront des sauvegardes incrémentielles (à moins que nous n’ajoutions l’option complète sans tirets juste à côté de duplicity dans la commande ci-dessous) :
PASSPHRASE="tecmint" duplicity --encrypt-key 115B4BB13BC768B8B2704E5663C429C3DB8BAD3B --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://[email //backups/rhel8
OR
PASSPHRASE="YourPassphraseHere" duplicity --encrypt-key YourPublicKeyIdHere --exclude /var/log/anaconda --exclude /var/log/sa /var/log scp://root@RemoteServer:XXXXX//backups/rhel8
Assurez-vous de ne pas manquer la double barre oblique dans la commande ci-dessus ! Ils sont utilisés pour indiquer un chemin absolu vers un répertoire nommé /backups/rhel8 dans la boîte de sauvegarde où les fichiers de sauvegarde seront stockés.
Remplacez YourPassphraseHere, YourPublicKeyIdHere et RemoteServer par la phrase de passe que vous avez saisie précédemment, l’ID de clé publique GPG et par l’adresse IP ou le nom d’hôte du serveur de sauvegarde, respectivement.
Votre sortie doit être similaire à l’image suivante :
L’image ci-dessus indique qu’un total de 86,3 Mo a été sauvegardé dans un total de 3,22 Mo dans la destination. Passons au serveur de sauvegarde pour vérifier notre sauvegarde nouvellement créée :
Une deuxième exécution de la même commande produit une taille et un temps de sauvegarde beaucoup plus petits :
Restauration des sauvegardes Linux à l’aide de Duplicity
Pour restaurer avec succès un fichier, un répertoire avec son contenu ou l’intégralité de la sauvegarde, la destination ne doit pas exister (la duplicité n’écrasera pas un fichier ou un répertoire existant). Pour clarifier, supprimons le journal cron dans la boîte CentOS :
rm -f /var/log/cron
La syntaxe pour restaurer un seul fichier à partir du serveur distant est la suivante :
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore filename sftp://root@RemoteHost//backups/rhel8 /where/to/restore/filename
où
- filename est le fichier à extraire, avec un chemin relatif au répertoire qui a été sauvegardé
- /where/to/restore est le répertoire du système local dans lequel nous voulons restaurer le fichier.
Dans notre cas, pour restaurer le journal principal cron à partir de la sauvegarde à distance, nous devons exécuter :
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore cron sftp://[email :XXXXX//backups/rhel8 /var/log/cron
Le journal cron doit être restauré à la destination souhaitée.
De même, n’hésitez pas à supprimer un répertoire de /var/log et à le restaurer à l’aide de la sauvegarde :
rm -rf /var/log/mail
PASSPHRASE="YourPassphraseHere" duplicity --file-to-restore mail sftp://[email :XXXXX//backups/rhel8 /var/log/mail
Dans cet exemple, le répertoire de messagerie doit être restauré à son emplacement d’origine avec tout son contenu.
Utilisation de la commande Duplicity
À tout moment, vous pouvez afficher la liste des fichiers archivés avec la commande suivante :
duplicity list-current-files sftp://[email :XXXXX//backups/rhel8
Supprimer les sauvegardes de plus de 6 mois :
duplicity remove-older-than 6M sftp://[email :XXXXX//backups/rhel8
Restaurer mon fichier dans le répertoire gacanepa tel qu’il était il y a 2 jours et 12 heures :
duplicity -t 2D12h --file-to-restore gacanepa/myfile sftp://[email :XXXXX//remotedir/backups /home/gacanepa/myfile
Dans la dernière commande, nous pouvons voir un exemple de l’utilisation de l’intervalle de temps (tel que spécifié par -t) : une série de paires où chacune est constituée d’un nombre suivi de l’un des caractères s, m, h, D, W, M ou Y (indiquant respectivement les secondes, les minutes, les heures, les jours, les semaines, les mois ou les années).
Résumé
Dans cet article, nous avons expliqué comment utiliser Duplicity, un utilitaire de sauvegarde qui fournit un cryptage pour les fichiers et les répertoires prêts à l’emploi. Je vous recommande vivement de jeter un coup d’œil au site web du projet duplicity pour plus de documentation et d’exemples.
Nous avons fourni une page de manuel de la duplicité au format PDF pour votre commodité de lecture, est également un guide de référence complet.
N’hésitez pas à nous faire savoir si vous avez des questions ou des commentaires.





