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,
- sauvegarder tout le système,
- 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 RsyncSRC
- Fichier/répertoire sourceDEST
- 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