Recherche de site Web

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.

Articles connexes: