GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

Vous recherchez une solution fiable et robuste pour sauvegarder vos données sous Linux ? Rsync vous avez couvert! Ce guide vous guide à travers les étapes de sauvegarde de fichiers et de répertoires à l'aide de Rsync sous Linux.

1. Présentation

Si vous ne sauvegardez jamais vos données en considérant que tout fonctionnera bien, alors je dirais que vous vous trompez.

Demandez simplement à tous les utilisateurs de Linux, ils partageront la douleur de ne pas sauvegarder leur système/données. En tant que débutant, j'ai fait cette erreur une fois et j'ai appris l'importance de la sauvegarde.

Il existe de nombreux outils de sauvegarde pour les plates-formes Linux et Unix. Rsync (Remote Sync) est considéré comme l'un des outils de sauvegarde les plus largement utilisés et les plus fiables.

2. Sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux

En utilisant Rsync, nous pouvons,

  1. sauvegarder tout le système,
  2. ou sauvegarder des fichiers et des répertoires individuels.

Dans le premier type, nous copions l'intégralité du système de fichiers Linux sur un périphérique externe ou un partage réseau. Vous pouvez utiliser cette copie pour ramener la machine à son état d'origine en cas de panne du système.

Le deuxième type est la sauvegarde ou la copie des fichiers et répertoires sélectifs uniquement. Par exemple, vous pouvez copier les fichiers de configuration importants ou l'intégralité de $HOME répertoire et exclure tout le reste.

Nous vous avons déjà montré comment sauvegarder l'intégralité du système Linux à l'aide de Rsync . Ce guide se concentre sur les fichiers et répertoires de sauvegarde sélective à l'aide de Rsync sous Linux.

2.1. Choix du support de stockage

Dans un premier temps, décidez où vous allez sauvegarder vos données. C'est très important !

Vous pouvez sauvegarder vos données sur un disque dur externe, un stockage Cloud ou un stockage en réseau (NAS). Une option simple et peu coûteuse consiste à utiliser un disque dur externe.

Si vous avez deux disques distincts dans votre machine, vous pouvez utiliser n'importe lequel d'entre eux pour sauvegarder vos données, car les deux ne tomberont pas en panne en même temps.

Remarque :

Si vous êtes sérieux au sujet de la sauvegarde, ne placez pas la sauvegarde dans le même lecteur lui-même. Utilisez toujours un lecteur externe, un lecteur secondaire, un partage réseau et un stockage en nuage, etc.

À des fins de démonstration, j'utiliserai un 1 To disque dur externe tout au long de ce guide.

2.3. Sauvegarder des fichiers à l'aide de Rsync

La syntaxe générale de Rsync pour copier des données d'un emplacement à un autre est :

rsync [OPTION…] SRC… [DEST]

Ici,

  • OPTION - la liste des options Rsync
  • SRC - Fichier/répertoire source
  • DEST - Destination

Voici une simple commande Rsync pour sauvegarder ou copier un fichier d'un emplacement à un autre dans le système local lui-même.

$ rsync src_file dest_file

Exemples :

$ rsync -auv ostechnix.txt ostechnix-bak.txt

Ici,

  • -a - Mode mode archive (conservation des propriétés des fichiers et des liens symboliques)
  • -u - Ignorer les fichiers qui sont plus récents à la réception.
  • -v - Mode verbeux

La commande ci-dessus enregistre le fichier de sauvegarde ostechnix-bak.txt fichier dans le répertoire courant. Vous pouvez également spécifier un répertoire de destination différent comme ci-dessous :

$ rsync -auv ostechnix.txt Downloads/ostechnix-bak.txt

Si vous ne spécifiez pas le nom du fichier cible, Rsync utilisera le même nom de fichier source que le fichier cible.

L'enregistrement de fichiers de sauvegarde sur le même disque n'est pas réellement une sauvegarde. Vous devez enregistrer les données de sauvegarde sur un lecteur externe ou un partage réseau ou au moins dans une partition différente.

Par exemple, la commande suivante sauvegarde le fichier sur mon disque externe :

$ rsync -auv ostechnix.txt /media/karthick/"My Passport"/

Rsync a de nombreuses options avancées. Jetez un œil à l'exemple suivant :

$ rsync -azvhP ostechnix.txt /media/karthick/"My Passport"/

Cette commande transfère le fichier en mode archive (pour préserver les attributs) et compressé (zippé) avec une barre de progression détaillée et lisible par l'homme.

2.4. Répertoires de sauvegarde à l'aide de Rsync

Au lieu de sauvegarder un seul fichier, vous pouvez placer tous les fichiers dans un répertoire et sauvegarder ce répertoire avec Rsync. Cela s'avère pratique lors de la mise en miroir et de la synchronisation des données.

Pour les besoins de ce guide, je vais vous montrer comment sauvegarder le répertoire HOME à l'aide de Rsync.

2.4.1. Sauvegarder le répertoire HOME à l'aide de Rsync

Rsync est un outil de copie de fichiers incrémentiel. Ce qui signifie - il synchronise uniquement les données nouvelles ou modifiées dans le répertoire source (c'est-à-dire /home dans notre cas) au lieu de resynchroniser toutes les données à partir de zéro.

Pour sauvegarder mon $HOME répertoire sur mon disque externe, j'ai utilisé la commande suivante :

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Décomposons la commande ci-dessus et voyons ce que fait chaque option.

  • Le drapeau -a est la combinaison de plusieurs options. Cet indicateur prend en charge la copie récursive et conserve les attributs tels que l'autorisation de fichier/répertoire, le propriétaire, etc.
  • Le drapeau -v activera le mode verbeux qui donnera plus de journaux dans le terminal lorsque vous exécuterez la commande rsync.
  • Le drapeau -x limitera rsync pour synchroniser les données dans les limites du système de fichiers. Si vous avez monté un système de fichiers dans votre répertoire personnel qui sera ignoré lors de l'opération de synchronisation.
  • Le drapeau -P est la combinaison de deux drapeaux. Il affichera la progression de chaque synchronisation et conservera les fichiers partiellement transférés.
  • Le drapeau --delete supprimera tous les répertoires et fichiers qui ne sont pas disponibles dans la source mais disponibles dans la destination. Vous devez être très prudent lors de l'utilisation de l'indicateur.
  • Le drapeau --exclude-from=File accepte un fichier comme argument. Ce fichier contient la liste des fichiers et répertoires qui seront ignorés par rsync.

J'ai créé un fichier nommé ignore_list.txt qui contient les fichiers et répertoires à exclure.

Dans la commande ci-dessus, cette partie --exclude-from=/home/karthick/Work/Backup/ignore_list.txt définit la liste d'exclusion.

Voici le contenu du ignore_list.txt fichier :

La liste des éléments à exclure de l'image ci-dessus est mon choix personnel et peut différer pour vous. Modifiez le paramètre en fonction de votre environnement.

Les deux dernières parties de la commande Rsync ci-dessus sont les emplacements source et destination. Dans mon cas, la source est mon répertoire $HOME et la destination est mon lecteur externe. Remplacez la source et la destination en fonction de votre environnement.

Attention : Si vous voulez connaître le point de montage de votre disque externe, exécutez le lsblk commande.

$ lsblk

sdb             8:16   0 931.5G  0 disk  
└─sdb1          8:17   0 931.5G  0 part  /media/karthick/My Passport

Avant d'exécuter le rsync commande pour la première fois, il est toujours recommandé de faire un essai d'essai . Le test simulera les modifications qui seront apportées. Utilisez la même commande mais avec le -n drapeau.

$ rsync -avxP -n --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Exemple de résultat :

 sending incremental file list
 karthick/
 karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)
...
...
...
sent 88,424 bytes  received 9,459 bytes  195,766.00 bytes/sectotal size is 3,028,935,519  speedup is 30,944.45 (DRY RUN)

Si tout se passe comme prévu, supprimez le -n indicateur et exécutez la commande pour sauvegarder vos données.

$ rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Selon la taille, la première exécution prendra un certain temps.

sending incremental file list
karthick/
karthick/.bash_history
         20,527 100%    0.00kB/s    0:00:00 (xfr#1, ir-chk=1056/1060)
karthick/.shutter/
karthick/.shutter/drawingtool.xml
            228 100%    4.54kB/s    0:00:00 (xfr#2, ir-chk=1037/1060)
karthick/.shutter/profiles/
karthick/Pictures/
karthick/Pictures/Selection_001.png
         37,626 100%  349.94kB/s    0:00:00 (xfr#3, to-chk=47/3001)
karthick/Pictures/Selection_002.png
         25,815 100%  227.12kB/s    0:00:00 (xfr#4, to-chk=46/3001)
karthick/Pictures/Selection_003.png
         63,275 100%  532.69kB/s    0:00:00 (xfr#5, to-chk=45/3001)
karthick/Pictures/Selection_004.png
         77,965 100%  581.20kB/s    0:00:00 (xfr#6, to-chk=44/3001)
karthick/Pictures/Selection_005.png
         75,863 100%  532.99kB/s    0:00:00 (xfr#7, to-chk=43/3001)
karthick/Pictures/Selection_006.png
         11,628 100%   75.20kB/s    0:00:00 (xfr#8, to-chk=42/3001)
karthick/Pictures/Selection_007.png
         24,311 100%  150.26kB/s    0:00:00 (xfr#9, to-chk=41/3001)
karthick/Work/Backup/
karthick/Work/Backup/home_dir_backup.sh
            764 100%    4.34kB/s    0:00:00 (xfr#10, to-chk=20/3001)
karthick/Work/Backup/home_dir_backup.sh~
            796 100%    4.37kB/s    0:00:00 (xfr#11, to-chk=19/3001)
karthick/Work/Backup/ignore_list.txt
            182 100%    1.00kB/s    0:00:00 (xfr#12, to-chk=18/3001)
karthick/Work/Backup/ignore_list.txt~
            182 100%    1.00kB/s    0:00:00 (xfr#13, to-chk=17/3001)…
…
…
sent 3,029,863,865 bytes  received 51,335 bytes  53,626,817.70 bytes/sec
total size is 3,028,934,994  speedup is 1.00

2.4.2. Créer un script de sauvegarde

Se souvenir d'une longue commande peut être difficile. Pour éviter de taper le long rsync commande dans le terminal, vous pouvez créer un script BASH simple et l'appeler chaque fois que vous souhaitez lancer la sauvegarde.

Créez un script nommé home_dir_backup.sh :

$ nano home_dir_backup.sh

Ajoutez les lignes suivantes :

#!/usr/bin/env bash

# PURPOSE : RSYNC COMMAND TO BACKUP MY HOME DIRECTORY TO EXTERNAL DEVICE..
# REPLACE SOURCE, DESTINATION AND EXCLUDE ACCORDING TO YOUR ENVIRONMENT.

rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /media/karthick/"My Passport"/

Ajoutez, supprimez ou modifiez les options Rsync selon vos besoins. Changez également les chemins source et destination avec les vôtres. Enregistrez et fermez le fichier.

Rendre le script exécutable :

$ chmod +x <path-to-home_dir_backup.sh>

Exécutez maintenant le script à tout moment pour démarrer la sauvegarde du répertoire $HOME :

$ ./path-to-home_dir_backup.sh

Utilisez un nom de script plus court pour vous en souvenir facilement.

Vous pouvez également créer un lien symbolique pour le fichier de script dans /usr/bin ou tout répertoire spécifique à l'utilisateur disponible dans le $PATH variables.

2.4.3. Créer un alias

L'autre façon d'éviter de taper de longues commandes est d'utiliser des alias .

Modifiez votre ~/.bashrc fichier et ajoutez la ligne suivante à la fin :

alias backup="rsync -avxP --delete --exclude-from=/home/karthick/Work/Backup/ignore_list.txt /home/karthick /
media/karthick/"My Passport"/"

Sourcez le bashrc fichier pour que les modifications prennent effet immédiatement :

$ source ~/.bashrc

Maintenant, exécutez simplement la commande suivante pour sauvegarder le répertoire $HOME :

$ backup

C'est à vous de décider ce que vous voulez utiliser. Vous pouvez soit créer un alias, soit créer un script et exécuter rsync en déclenchant le script. Dans mon cas, j'ai créé un script, puis créé un alias pour ce script.

3. Planifier la sauvegarde

Vous pouvez utiliser cron planificateur pour planifier l'exécution des tâches de sauvegarde à une heure particulière d'un jour particulier.

Modifiez les tâches cron de l'utilisateur actuel à l'aide de la commande

$ crontab -e

Définissez votre calendrier de sauvegarde. Supposons, par exemple, que vous exécutiez une sauvegarde tous les jours à 3 h du matin , utilisez la ligne suivante :

0 3 * * * <rsync-command-to-execute>

Selon vos besoins, vous pouvez programmer des tâches quotidiennes, hebdomadaires ou mensuelles.

Si vous débutez avec les tâches Cron, nous avons compilé une liste d'exemples de tâches cron utiles pour planifier des tâches sous Linux. Pour plus de détails sur l'utilisation de cron, consultez le guide suivant.

  • Guide du débutant sur les tâches Cron

4. Interfaces graphiques Rsync

Si vous débutez avec Linux, vous aurez peut-être du mal à comprendre toutes les options et tous les indicateurs Rsync. Pas de soucis! Il existe quelques outils frontaux graphiques pour Rsync disponibles. L'un de ces outils est Grsync .

Grsync est une interface utilisateur graphique simple pour Rsync. Vous n'avez pas besoin de mémoriser les commandes Rsync et ses options. Vous pouvez tout faire via une interface graphique facile à utiliser.

Pour plus de détails, consultez le guide suivant :

  • Grsync – Une interface graphique simple pour Rsync

5. Conclusion

Dans ce guide, nous avons vu comment sauvegarder des fichiers et des répertoires à l'aide de Rsync sous Linux. Comme vous pouvez le constater, copier des fichiers et des répertoires avec Rsync est très simple !

Nous vous avons également montré comment sauvegarder votre répertoire personnel à l'aide de la commande rsync et certaines des façons de l'exécuter et de le planifier.

Cette méthode peut également être appliquée à n'importe quel répertoire ou structure de fichiers sous Linux pour sauvegarder les données. Si vous pensez avoir une meilleure solution de sauvegarde, nous serions ravis de l'entendre via la section des commentaires ci-dessous.

Lire connexe :

  • Reprendre les fichiers partiellement transférés via SSH à l'aide de Rsync
  • Comment sauvegarder et restaurer des fichiers à l'aide de Deja Dup sous Linux
  • Comment configurer un serveur de sauvegarde à l'aide de Rsnapshot
  • Comment synchroniser des fichiers avec Unison sous Linux
  • Comment synchroniser les répertoires locaux et distants sous Linux
  • Comment synchroniser des fichiers et des répertoires à l'aide de Zaloha.sh
  • CYA – Utilitaire d'instantané et de restauration du système pour Linux
  • Restic – Une application de sauvegarde rapide, sécurisée et efficace

Linux
  1. Comment sauvegarder l'intégralité de votre système Linux à l'aide de Rsync

  2. Comment archiver des fichiers et des répertoires sous Linux [Partie 2]

  3. Comment archiver des fichiers et des répertoires sous Linux [Partie 1]

  4. Comment compresser et extraire des fichiers et des répertoires sous Linux à l'aide de gzip et bzip2

  5. Comment rechercher et supprimer des répertoires et des fichiers vides sous Linux

Comment sauvegarder et restaurer des fichiers à l'aide de Deja Dup sous Linux

Comment synchroniser des fichiers et des répertoires à l'aide de Zaloha.sh

Comment sauvegarder et restaurer des fichiers à l'aide de BorgBackup sous Linux

Synchronisation des fichiers et répertoires Linux avec rsync

Comment copier des fichiers et des répertoires dans un terminal Linux

Comment supprimer des fichiers et des répertoires à l'aide de la ligne de commande Linux