Comment utiliser le programme de sauvegarde Restic sur Linux –
Protégez vos précieux fichiers et vos photos irremplaçables avec le programme de sauvegarde restic. C’est rapide, chiffré et vous pouvez l’utiliser directement à partir de la ligne de commande Linux. Voici comment le configurer.
Sommaire
La valeur des sauvegardes
Tout le matériel a une durée de vie limitée. Les disques durs mécaniques (HDD) et les disques SSD (SSD) ne durent pas éternellement. Des accidents arrivent aussi. Les ordinateurs portables peuvent être perdus, volés ou déposés dans les escaliers.
On disait que la valeur d’un système de sauvegarde efficace ne devient claire qu’une fois que vous avez perdu des données. En cas de défaillance ou de perte, vous devez disposer d’un moyen rapide et simple de récupérer vos fichiers et vos informations. Si une organisation perd des données, les implications sont graves. Cela pourrait même compromettre la continuité des activités. Même dans un environnement domestique, la perte de données peut être une expérience douloureuse. Les sauvegardes sont les seules garanties judicieuses.
Et en plus de tout le reste, la perte accidentelle – ou malveillante – de données personnellement identifiables est considérée comme une violation en vertu de certaines lois sur la protection des données, telles que le règlement général sur la protection des données (RGPD).
Il y a quelques considérations à prendre en compte lorsque vous choisissez un logiciel de sauvegarde. Où voulez-vous que vos sauvegardes soient conservées? Sur un lecteur amovible, sur une autre machine sur votre réseau local (LAN) ou dans le stockage en nuage? De toute évidence, vous devez utiliser un programme de sauvegarde capable d’écrire et de restaurer à partir du stockage de données que vous souhaitez utiliser.
Les sauvegardes doivent être chiffrées, en particulier si elles doivent être stockées dans des emplacements hors site ou dans le cloud. S’ils sont chiffrés, ils ne peuvent pas être lus et restaurés par des personnes non autorisées.
Le programme doit être rapide. Vous ne voulez pas attendre toute la journée qu’une sauvegarde ou une restauration se termine. Certains programmes stockent une image de sauvegarde de base, puis stockent les différences entre l’image de base et la machine source pour chaque sauvegarde ultérieure. Cela accélère considérablement le processus de sauvegarde. Il utilise également moins d’espace pour vos sauvegardes.
restic fait tout cela. Il est gratuit, open source, sous licence BSD à 2 clauses et en cours de développement actif. Le code source est sur GitHub.
Où sauvegarder
Dans cet article, nous allons stocker nos sauvegardes sur un autre ordinateur de notre réseau. C’est génial, car cela permet des transferts de fichiers rapides et il est facile de sauvegarder et de restaurer à partir de. Dans un scénario réel, vous devez également effectuer une sauvegarde vers un autre emplacement hors site. Si vos systèmes actifs et vos sauvegardes se trouvent au même endroit et qu’une catastrophe se produit à cet endroit – un incendie, un vol ou une inondation – votre oie va être cuite à moins que vous n’ayez une sauvegarde hors site.
Sans surprise, restic peut sauvegarder sur un disque externe qui peut être retiré des locaux et, mieux encore, il peut sauvegarder directement sur le stockage cloud.
Hors de la boîte, restic peut sauvegarder jusqu’à:
- Un répertoire local ou un lecteur amovible local.
- Un ordinateur en réseau via SSH File Transfer Protocol (SFTP). Ceci, bien sûr, nécessite Secure Shell (SSH).
- Serveur HTTP REST.
- AWS S3.
- OpenStack Swift.
- BackBlaze B2.
- Stockage d’objets blob Microsoft Azure.
- Google Cloud Storage.
Si vous avez besoin de sauvegarder vers une destination de données qui ne figure pas dans cette liste, vous pouvez combiner la puissance de rclone avec restic et sauvegarder vers l’une des quelque 40 destinations prises en charge par rclone.
Les sauvegardes réseau SFTP nécessitent l’installation et la configuration de SSH sur le serveur de sauvegarde. Il s’agit de la machine sur laquelle les sauvegardes seront stockées. Si vous configurez des clés SSH sur le serveur de sauvegarde et sur la machine que vous allez sauvegarder, vous ne serez pas invité à saisir le mot de passe SSH à chaque fois que vous exécuterez une sauvegarde.
Une façon d’automatiser vos sauvegardes consiste à créer des scripts courts ou des fonctions shell et à utiliser cron pour les exécuter à des moments spécifiés. L’utilisation de clés SSH vous permettra d’éviter le problème de fournir un mot de passe pour les sauvegardes sans assistance.
Installation de restic
L’application restic est dans les référentiels des principales distributions Linux, donc son installation est un simple one-liner utilisant le gestionnaire de paquets de chaque distribution.
Pour installer restic sur Ubuntu, tapez:
sudo apt install restic
La commande à utiliser sur Fedora est:
sudo dnf install restic
Sur Manjaro nous utilisons pacman
:
sudo pacman -Sy restic
Mise en place de restic
Assurez-vous que SSH est configuré sur la machine du serveur de sauvegarde et que vous pouvez y établir une connexion à distance à partir de la machine que vous allez sauvegarder. C’est la machine cliente. Dans notre réseau de test, le client s’appelle «ubuntu-20-10» et le serveur s’appelle «backup-box».
Dans la terminologie de Restic, les sauvegardes sont stockées sous forme de snapshots dans un référentiel. Chaque sauvegarde crée un nouvel instantané. Nous devons créer un emplacement pour le référentiel sur le serveur.
Nous devons créer un répertoire sur le serveur de sauvegarde pour contenir le référentiel. Historiquement, les services servis par un serveur se trouvaient dans le répertoire «/ srv». Nous allons donc y placer notre référentiel.
Sur le serveur de sauvegarde, exécutez cette commande. Vous pouvez nommer le répertoire du référentiel comme vous le souhaitez. Nous utilisons le nom «restic» dans un souci de simplicité.
sudo mkdir /srv/restic
Nous devons nous assurer que ce répertoire est accessible à la personne qui gérera les sauvegardes. S’il s’agissait de plusieurs personnes, il serait judicieux de créer un groupe d’utilisateurs et de donner au groupe l’accès à l’annuaire.
sudo chown dave:dave /srv/restic
Vérifions les paramètres sur le répertoire:
ls -hl /srv
Nous pouvons maintenant passer à la machine cliente et créer le référentiel sur le serveur à partir de là. Remplacez le nom de votre utilisateur, le nom du serveur de sauvegarde et le nom du répertoire du référentiel en fonction de vos choix. Vous pouvez utiliser l’adresse IP du serveur de sauvegarde si vous préférez.
Nous utilisons le -r
(référentiel) pour spécifier le chemin d’accès au référentiel que nous allons créer. Le restic init
La commande initialise le référentiel.
restic -r sftp:dave@backup-box.local:/srv/restic init
Il vous sera demandé le mot de passe du compte utilisateur sur le serveur de sauvegarde. Si vous avez configuré des clés SSH entre le serveur et le client, vous n’aurez pas besoin d’effectuer cette étape.
Il vous sera également demandé le mot de passe du référentiel, puis il vous sera demandé de le confirmer. Ce mot de passe doit être utilisé pour interagir avec le référentiel à l’avenir. Ne le perds pas! Vous ne pourrez pas sauvegarder ou restaurer les données si vous perdez le mot de passe.
La création et l’initialisation du référentiel ne prennent qu’un instant.
Créer une sauvegarde
Créer une sauvegarde est très simple. Nous utilisons le backup
avec restic, indiquez-lui ce que nous voulons sauvegarder et à quel référentiel envoyer la sauvegarde.
restic backup Documents/kernel/ -r sftp:dave@backup-box.local:/srv/restic
Vous devez fournir le mot de passe de l’utilisateur et le mot de passe du référentiel. Pendant que la sauvegarde est en cours d’exécution, les noms des fichiers en cours de copie s’affichent, ainsi que des statistiques vous indiquant le nombre total de fichiers à copier, le nombre de fichiers copiés jusqu’à présent et le pourcentage de la sauvegarde terminée. Les instantanés sont cryptés à l’aide de la norme de cryptage avancée AES-256.
Comme il s’agissait de la première sauvegarde dans ce référentiel, tous les fichiers sauvegardés étaient nouveaux. Nous avons dit que la restic était rapide – plus de 70 000 fichiers ont été sauvegardés en 23 secondes. C’est tout le code source du noyau Linux.
Sur une autre machine de test, j’ai sauvegardé plus de 350000 fichiers représentant plus de 170 Gio en une heure et demie.
J’ai créé un nouveau fichier sur le client dans le répertoire source et exécuté une autre sauvegarde. La commande est la même que précédemment.
restic backup Documents/kernel/ -r sftp:dave@backup-box.local:/srv/restic
L’arborescence du répertoire source a été analysée pour les modifications, le nouveau fichier a été détecté et il a été sauvegardé. Cette seconde petite sauvegarde a pris trois secondes, y compris l’analyse des autres fichiers pour les modifications.
Jetons un coup d’œil aux deux instantanés que nous avons dans le référentiel. La commande restic pour cela est snapshots
.
restic -r sftp:dave@backup-box.local:/srv/restic snapshots
Chaque instantané a reçu un identifiant hexadécimal comme identifiant unique. La date et l’heure de création de chaque instantané sont affichées. Le nom de l’ordinateur à partir duquel la sauvegarde a été effectuée et le chemin d’accès aux données sauvegardées sont également affichés.
J’ai ensuite créé un deuxième nouveau fichier et créé une autre sauvegarde. Encore une fois, la ligne de commande est la même qu’avant.
Tout comme avec notre sauvegarde de recharge précédente, cette petite mise à jour a pris trois secondes.
À présent, vous êtes probablement fatigué d’entrer le mot de passe du référentiel. Nous pouvons résoudre ce problème avant d’utiliser le snapshots
commande pour regarder notre collection de trois instantanés. Ouvrez un éditeur et tapez le mot de passe du référentiel dedans, puis appuyez sur «Entrée» pour commencer une nouvelle ligne. Enregistrez le fichier sous «.rest_pass» dans votre répertoire personnel.
Pour vous assurer que personne d’autre ne peut voir le mot de passe, modifiez les bits du mode d’accès du fichier en utilisant chmod
:
chmod 600 .rest_pass
Cela signifie que personne d’autre que vous ne peut accéder au fichier.
Maintenant, nous pouvons passer cela à la ligne de commande restante en utilisant le -p
(fichier de mot de passe). Si vous avez également configuré des clés SSH entre le client et le serveur, vous n’aurez pas non plus à saisir le mot de passe du compte utilisateur. Vous pouvez facilement automatiser vos sauvegardes avec cron
une fois que l’interaction humaine a été supprimée du processus.
restic snapshots -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass
On ne nous demande plus le mot de passe du référentiel, ce qui est génial. Nous n’avons pas besoin de nous en souvenir et nous ne pouvons pas le saisir par erreur.
Travailler avec des instantanés
Le restic diff
La commande vous permet de voir les différences entre deux instantanés. Utilisez les ID uniques des deux instantanés que vous souhaitez comparer. Vous pouvez voir les ID d’instantané lorsque vous utilisez le restic snapshot
commander.
restic diff -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass 8f98cd29 8700e4bf
Les différences entre les instantanés sont affichées sous forme de colonnes de statistiques.
Le restic check
La commande effectue un test de vérification sur tous les instantanés du référentiel.
restic check -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass
Pour supprimer un instantané, vous devez dire à restic de forget
et à prune
il. Vous devez utiliser l’ID unique de l’instantané pour identifier l’instantané à supprimer.
restic forget --prune -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass e506e089
Restauration des données
Lorsque vient le temps de restaurer les données de vos sauvegardes, il est aussi simple que cela de créer la sauvegarde. Vous devez spécifier quel instantané vous allez restaurer. Vous pouvez utiliser l’identifiant unique d’un instantané ou utiliser le latest
label pour utiliser l’instantané le plus récent du référentiel.
Vous devez également fournir un répertoire dans lequel les données restaurées seront copiées à l’aide du target
option.
restic restore latest --target ~/restored-data -r sftp:dave@backup-box.local:/srv/restic -p .rest_pass
La restauration est aussi rapide que la sauvegarde. En vérifiant dans le répertoire cible, nous pouvons voir que l’arborescence des répertoires et les fichiers ont été restaurés pour nous.
ls
Faites des sauvegardes, dormez facilement
La perte de données est un problème sérieux. Une solution de sauvegarde robuste signifie que vous avez une chose en moins à craindre. Avec restic, vous pouvez automatiser vos sauvegardes dans des référentiels locaux et cloud et dormir tranquillement.