GNU/Linux >> Tutoriels Linux >  >> Linux

Tranquillité d'esprit avec Retic Backup sur Linux

La sauvegarde est l'une des choses les plus critiques dans chaque industrie, et vous cherchez peut-être quelle solution de sauvegarde est la plus fiable. Pourquoi ne pas essayer la sauvegarde Retic sur Linux ?

Restic est une solution de sauvegarde sécurisée, rapide et fiable. Et dans ce didacticiel, vous apprendrez à configurer le système de sauvegarde Retic sur un serveur Linux.

Continuez à lire et ne perdez plus aucune de vos données !

Prérequis

Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d'avoir les éléments suivants :

  • Deux serveurs Linux :ce didacticiel utilise deux serveurs Debian 11 nommés server1 et serveur de sauvegarde .
  • Un utilisateur non root avec des privilèges sudo.

Installation de Restic sous Linux

Restic stocke les données dans le référentiel chiffré et chaque fois que vous ajoutez des données au référentiel, Restic crée automatiquement un nouvel instantané. Mais avant de profiter de l'utilitaire de sauvegarde Rastic, vous devez d'abord installer Rastic sur votre machine.

1. Ouvrez votre terminal et connectez-vous au server1 machine.

2. Ensuite, exécutez le wget commande ci-dessous pour télécharger le fichier binaire Retic. Au moment d'écrire ces lignes, la dernière version de Restic est la v0.12.1.

wget https://github.com/restic/restic/releases/download/v0.12.1/restic_0.12.1_linux_amd64.bz2

3. Exécutez les commandes suivantes pour extraire le restic_0.12.1_linux_amd64.bz2 fichier et vérifiez le restic_0.12.1_linux_amd64 fichier binaire existe.

# Extract restic_0.12.1_linux_amd64.bz2
bzip2 -dv restic_0.12.1_linux_amd64.bz2
# List the files to verify restic_0.12.1_linux_amd64 exists
ls

4. Maintenant, exécutez le chmod commande pour faire le restic_0.12.1_linux_amd64 fichier exécutable, puis renommez et déplacez le fichier vers le /usr/bin/restic annuaire.

À ce stade, vous pouvez maintenant exécuter la commande restic sur votre serveur.

# Make Restic file executable
chmod +x restic_0.12.1_linux_amd64

# Installing Restic
mv restic_0.12.1_linux_amd64 /usr/bin/restic

5. Exécutez le restic commande ci-dessous pour générer la complétion bash pour Restic. Cela permet aux utilisateurs d'exécuter facilement le restic commande.

restic generate --bash-completion /etc/bash_completion.d/restic

6. Enfin, exécutez la commande ci-dessous pour recharger l'achèvement bash sur votre session de terminal actuelle, puis exécutez le restic commande et appuyez sur TAB pour afficher les options disponibles pour le restic commande.

Enfin, exécutez les commandes suivantes pour recharger l'achèvement bash sur votre session de terminal actuelle. Tapez restic et appuyez sur la touche TAB pour afficher les options disponibles pour la commande restic.

# reload bash completion
source /etc/profile.d/bash_completion.sh

# verify restic command
restic

Vous devriez voir toutes les options disponibles de la commande restic, comme indiqué ci-dessous.

Configuration d'un serveur de sauvegarde

Maintenant que vous avez installé Ristic sur le server1 machine, l'étape suivante consiste à configurer le backup-server , afin que vous puissiez commencer à sauvegarder vos données via le protocole SFTP.

Par défaut, Retic vous permet de sauvegarder des données dans le répertoire local, le serveur distant et le protocole SFTP. Restic vous permet également de sauvegarder des données sur des services de sauvegarde cloud tiers tels qu'Amazon S3, Azure Blog Storage, Backblaze B2 et Google Cloud Storage.

1. Ouvrez un nouveau terminal et connectez-vous au backup-server machine.

2. Ensuite, exécutez la commande ci-dessous pour créer un nouvel utilisateur nommé johndoe et configurez un mot de passe.

# create new user
useradd -m -s /bin/bash johndoe

# setup the password
passwd johndoe

3. Exécutez chaque commande ci-dessous pour créer un nouveau répertoire de sauvegarde (/srv/backup ) pour Restic et changer le propriétaire (chown ) au johndoe utilisateur et groupe. Ce répertoire stockera toutes les données de sauvegarde du server1 machine.

# create new backup directory
mkdir -p /srv/backup

# change ownership of the backup directory
sudo chown -R johndoe:johndoe /srv/backup

4. Maintenant, passez au server1 machine, et exécutez la commande ci-dessous pour générer une clé SSH.

Au lieu d'utiliser l'authentification par mot de passe, vous opterez pour l'authentification par clé. Une clé SSH est indispensable, notamment lors de la mise en place d'une sauvegarde automatique avec un script shell ou lors de l'utilisation de tâches Cron.

ssh-keygen

Appuyez sur ENTER pour accéder aux invites suivantes, comme indiqué ci-dessous. Cela définit l'emplacement de sauvegarde de votre clé SSH sur le répertoire par défaut (~/.ssh) et désactive le mot de passe de votre clé privée SSH.

À ce stade, dans le répertoire ~/.ssh , vous aurez les fichiers id_rsa (clé privée SSH) et id_rsa.pub (votre clé publique).

5. Exécutez le ls commande ci-dessous pour vérifier que le id_rsa et id_rsa.pub les fichiers existent dans le ~/.ssh annuaire.

ls ~/.ssh/

6. Ensuite, exécutez le ssh-copy-id commande ci-dessous pour télécharger la clé publique SSH sur le backup-server . Dans cette démo, le backup-server utilise le nom d'utilisateur johndoe et l'adresse IP 172.16.1.150 .

ssh-copy-id [email protected]

Une fois l'importation terminée, vous recevrez le message Nombre de clés ajoutées : 1 sur votre terminal.

7. Enfin, exécutez le ssh commande ci-dessous pour vérifier et se connecter au backup-server .

ssh [email protected]

Notez que vous vous êtes automatiquement connecté au serveur de sauvegarde sans authentification par mot de passe.

Initialisation d'un nouveau référentiel

Vous avez maintenant configuré le serveur de sauvegarde Retic, la prochaine étape consiste donc à initialiser un nouveau référentiel. Restic stockera les données de sauvegarde dans un référentiel, et chaque action de sauvegarde crée un nouvel instantané dans ce référentiel.

1. Exécutez le restic commande ci-dessous pour initialiser (init ) un référentiel (-r :/srv/backup ) en utilisant le protocole SFTP.

restic -r sftp:[email protected]:/srv/backup init

2. Entrez un mot de passe fort pour le référentiel et confirmez le mot de passe. N'oubliez pas le mot de passe, car vous l'utiliserez pour déchiffrer vos données de sauvegarde.

Comme indiqué ci-dessous, le nouveau référentiel (a9073b62d0) est créé sur le serveur SFTP (sftp:[email protected]:/srv/backup).

3. Enfin, exécutez le restic commande ci-dessous pour vérifier le référentiel. Vous serez invité à saisir le mot de passe que vous avez précédemment noté pour le référentiel (deuxième étape).

restic -r sftp:[email protected]:/srv/backup check

S'il n'y a pas d'erreur, vous obtiendrez le message Aucune erreur n'a été trouvée, illustré ci-dessous.

Sauvegarder des données dans un référentiel

Vous avez maintenant initialisé le référentiel à l'aide du serveur SFTP sur le backup-server . Mais comment sauvegarder des données avec Ristic ? Vous sauvegarderez les données de server1 au dépôt dans le backup-server .

1. Exécutez le restic commande ci-dessous pour sauvegarder les données du /var/www/wordpress répertoire vers le référentiel.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress

Entrez le mot de passe pour le référentiel et lorsque le processus de sauvegarde est terminé, Restic crée l'instantané (736949a9), comme indiqué ci-dessous.

2. Ensuite, exécutez la commande ci-dessous pour lister tous les snapshots .

restic -r sftp:[email protected]:/srv/backup snapshots

Assurez-vous que l'instantané (736949a9) est disponible dans la liste, comme indiqué ci-dessous

3. Exécutez la commande ci-dessous pour lister tous les fichiers (ls ) sur l'instantané (736949a9 ).

restic -r sftp:[email protected]:/srv/backup ls 736949a9

Vous verrez la liste des fichiers sur l'instantané (736949a9), qui correspond aux données de sauvegarde du répertoire /var/www/wordpress/.

De plus, vous pouvez exécuter la commande ci-dessous pour sauvegarder plusieurs répertoires (/var/www/wordpress et /var/www/html) dans le même référentiel.

restic -r sftp:[email protected]:/srv/backup backup /var/www/wordpress /var/www/html

Notez ci-dessous que Restic a créé un nouvel instantané (7b6e321e).

4. Maintenant, exécutez chaque commande ci-dessous pour répertorier tous les instantanés, les statistiques des fichiers de sauvegarde et la différence entre deux instantanés (736949a9 et 7b6e321e ).

# checking list snapshots
restic -r sftp:[email protected]:/srv/backup snapshots

# show stats of repository
restic -r sftp:[email protected]:/srv/backup stats

# checking different between two snapshots
restic -r sftp:[email protected]:/srv/backup diff 736949a9 7b6e321e

Ci-dessous, les instantanés 736949a9 et 7b6e321e ont les mêmes données de sauvegarde (/var/www/wordpress). Notez que leurs tailles de fichiers sur le référentiel sont également les mêmes puisque Restic ne sauvegarde que les modifications de fichiers, ce qui rend Restic rapide et efficace.

Exclure des fichiers dans les processus de sauvegarde

La sauvegarde des données est pratique, mais comment exclure les données inutiles ? Restic vous permet d'exclure des fichiers/répertoires avec le --exclude-file option pendant le processus de sauvegarde.

Le --exclude-file L'option peut exclure les fichiers indésirables, tels que les fichiers journaux, ce qui rend le processus de sauvegarde plus rapide et plus propre.

1. Exécutez la commande ci-dessous pour créer un nouveau répertoire appelé /opt/backup pour stocker les fichiers sauvegardés.

mkdir -p /opt/backup

2. Ensuite, créez un nouveau fichier (/opt/backup/excludes.txt ) à l'aide de votre éditeur de texte préféré et remplissez la configuration suivante.

La configuration ci-dessous indique à Restic d'exclure les fichiers avec différents types de fichiers.

# excludes files .zip
*.tar.gz

# excludes directory logs
logs

# exclude .txt files on the directory data
data/*.txt

3. Exécutez la commande ci-dessous pour sauvegarder les données de /var/www/html répertoire vers le dépôt (-r :/srv/backup ). Le --exclude-files l'option indique à Restic d'exclure les fichiers et répertoires répertoriés dans exludes.txt dossier.

restic -r sftp:[email protected]:/srv/backup backup /var/www/html --exclude-file=/opt/backup/excludes.txt

Ci-dessous, le nouvel instantané de sauvegarde ca99be01 est créé par Restic, à l'exception des fichiers, que vous avez spécifiés dans le excludes.txt fichier.

4. Maintenant, exécutez la commande ci-dessous pour vérifier la liste des fichiers (ls ) sur l'instantané ca99be01 .

restic -r sftp:[email protected]:/srv/backup ls ca99be01

Vous verrez tous les fichiers sauvegardés sauf ceux que vous avez définis dans le fichier de configuration (excludes.txt ).

5. Enfin, exécutez le tree commande ci-dessous pour vérifier que l'exclusion des données fonctionne avec Restic.

tree /var/www/html/

Comme vous le voyez ci-dessous, le répertoire /var/www/html contient des fichiers texte à l'intérieur, mais Restic ne les a pas exclus de la sauvegarde.

Suppression d'instantanés du référentiel

Dans la plupart des cas, vous n'aurez besoin que de deux ou trois versions d'instantanés au plus tard. Alors pourquoi ne pas supprimer les anciens instantanés ? La suppression d'instantanés nécessite que vous connaissiez l'ID de l'instantané, alors vérifiez d'abord la liste des instantanés.

1. Exécutez la commande ci-dessous pour répertorier tous les instantanés du référentiel.

restic -r sftp:[email protected]:/srv/backup snapshots

Choisissez un ID de l'instantané à supprimer (736949a9).

2. Ensuite, exécutez les commandes suivantes pour supprimer (forget ) instantané spécifique (736949a9 ), et ses données restantes du référentiel.

# Removes snapshot only
restic -r sftp:[email protected]:/srv/backup forget 736949a9
# Removes remaining data from repository
restic -r sftp:[email protected]:/srv/backup prune

3. Exécutez la commande ci-dessous pour effectuer un --dry-run et voir quels instantanés seront supprimés (forget ) et quelles deux versions d'instantané seront conservées (--keep-last 2 ).

Avant de supprimer des instantanés, un essai à blanc est toujours recommandé pour éviter de perdre des instantanés importants.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune --dry-run

4. Exécutez la commande ci-dessous pour supprimer (forget ) anciennes versions d'instantané et conserver les deux dernières (--keep-last 2 ) du référentiel.

restic -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

5. Enfin, exécutez la commande ci-dessous pour répertorier tous les instantanés existants.

restic -r sftp:[email protected]:/srv/backup snapshots

Vous pouvez voir ci-dessous qu'il ne reste que les deux dernières versions d'instantanés.

Restauration des données sur le référentiel

Peut-être avez-vous accidentellement supprimé des données cruciales du référentiel. Si oui, comment les récupérer ? Heureusement, Restic vous permet de déchiffrer et de restaurer les données de sauvegarde tant que vous connaissez l'ID d'instantané de la sauvegarde.

1. Exécutez le restic commande ci-dessous pour vérifier les instantanés disponibles sur le référentiel.

restic -r sftp:[email protected]:/srv/backup snapshots

Vous trouverez ci-dessous un exemple d'instantanés disponibles sur le référentiel. Notez l'ID d'instantané des données de sauvegarde à restaurer.

2. Ensuite, exécutez les commandes suivantes pour créer un répertoire de restauration (/opt/restore ) et restaurez votre instantané cible (6b44ac32 ) dans ce répertoire de restauration.

# Create a restore directory
mkdir -p /opt/restore
# Restore snapshot data to the /opt/restore directory
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore

3. Enfin, exécutez le ls commande ci-dessous pour vérifier les données restaurées.

ls /opt/restore/var/www/wordpress

Comme indiqué ci-dessous, vous verrez la liste des fichiers restaurés à partir de l'instantané (6b44ac32).

Restauration de fichiers spécifiques

Vous venez de restaurer des données perdues, mais que se passe-t-il si vous avez seulement besoin de restaurer un fichier spécifique ? Avec Restic, vous pouvez cibler un fichier spécifique en ajoutant le --include option dans le restic commande.

1. Exécutez la commande ci-dessous pour créer un répertoire contenant le fichier spécifique à restaurer à partir d'un instantané.

mkdir -p /opt/restore/specific

2. Ensuite, exécutez le restic commandes ci-dessous pour restaurer un répertoire spécifique (/var/www/wordpress/wp-content ) et un fichier spécifique (wp-config.php ) à partir de l'instantané (6b44ac32 ). Chaque commande définit le répertoire de restauration cible sur le /opt/restore/specific annuaire.

# restore specific directory wp-config
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-content

# restore specific file wp-config.php
restic -r sftp:[email protected]:/srv/backup restore 6b44ac32 --target /opt/restore/specific --include /var/www/wordpress/wp-config.php

3. Enfin, exécutez le ls commande ci-dessous pour vérifier le fichier et le répertoire restaurés dans le répertoire (/opt/restore/specific ).

ls /opt/restore/specific/var/www/wordpress

Si la restauration fonctionnait correctement, vous verriez le répertoire (wp-content) et le fichier (wp-config.php) restaurés à partir de l'instantané (6b44ac32).

Sauvegarder les données automatiquement avec Restic et Cron

À ce stade, vous avez déjà appris toute l'utilisation de base de l'outil de sauvegarde Restic. Mais puisque la sauvegarde manuelle des données peut être pénible, pourquoi sauvegarder automatiquement les données sur votre système Linux ? Restic, avec Cron, peut faire des merveilles, comme automatiser le processus de sauvegarde des données.

1. Créez un nouveau fichier (/opt/backup/.secret ) à l'aide de votre éditeur préféré et saisissez le mot de passe de votre référentiel. Cette démo utilise le mot de passe ResticRepositoryPassword pour le référentiel Restic.

2. Ensuite, exécutez la commande ci-dessous pour modifier l'autorisation du /opt/backup/.secret fichier vers 600 . Le code d'autorisation 600 donne l'autorisation de lecture et d'écriture uniquement au /opt/backup/.secret propriétaire du fichier.

chmod 600 /opt/backup/.secret

3. Exécutez le crontab commande ci-dessous pour créer une nouvelle tâche Cron. Le -u root L'option indique que la tâche Cron sera exécutée en tant qu'utilisateur root.

crontab -u root -e

4. Sélectionnez votre éditeur préféré et le fichier de configuration Cron s'ouvre dans cet éditeur. Mais cette démo utilise le nano éditeur.

5. Enfin, remplissez la configuration Cron avec la configuration suivante pour configurer la sauvegarde automatique et enregistrer les modifications.

Le script ci-dessous effectue les opérations suivantes :

  • Exécutez le restic commande tous les 1.AM aux répertoires de sauvegarde (/var/www/wordpress et /var/www/html ) au serveur SFTP du référentiel (sftp:[email protected]:/srv/backup ).
  • Supprimer automatiquement l'ancien instantané à 2.AM et conserver les deux dernières versions des instantanés.
  • Spécifie (--password-file ) le fichier (/opt/backup/.secret ) qui contient votre mot de passe pour le référentiel Restic, vous n'avez donc pas besoin de coder en dur votre mot de passe dans la configuration Cron.
# Runs daily backup at 1.AM
0 1 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup backup --verbose /var/www/{wordpress,html}

# Runs every 2.AM, and always keeps the last 2 backup snapshots
0 2 * * * restic --password-file /opt/backup/.secret -r sftp:[email protected]:/srv/backup forget --keep-last 2 --prune

Conclusion

Dans ce didacticiel, vous avez appris à installer Restic sur Linux et différentes manières de sauvegarder vos données, des répertoires aux fichiers spécifiques avec des instantanés. Outre la sauvegarde des données, vous avez découvert que vous pouvez restaurer des données perdues de manière inattendue. L'automatisation joue un rôle important dans la sauvegarde de vos données, alors continuez à exécuter les tâches Cron pour sécuriser vos données.

À ce stade, vous êtes prêt à sauvegarder plus de données à l'aide de Restic. Et pourquoi ne pas tirer parti de votre sauvegarde en utilisant des balises, une politique de filtrage et des services cloud de sauvegarde ?


Linux
  1. Faire de la musique sur Linux avec Ardour

  2. Modifier l'audio sur Linux avec Audacity

  3. Gestion des packages Linux avec apt

  4. Quoi de neuf avec rdiff-backup ?

  5. Commande JQ sous Linux avec exemples

Commande Linux ip avec exemples

15 Commande Linux ps avec exemples

Comment sauvegarder et restaurer des données à l'aide de Retic sous Linux

Comment sauvegarder et restaurer le système Linux avec Timeshift

Sauvegarder et restaurer les paramètres du système de bureau Linux avec Dconf

ReaR :sauvegardez et restaurez votre serveur Linux en toute confiance