Comment sauvegarder sous Linux? 15 exemples de la commande rsync

network-150919_1280

 rsync (remote synchronistion) signifie synchronisation à distante.

rsync est utilisé pour effectuer des actions de sauvegarde sous UNIX / Linux.

L’utilitaire rsync synchronise des fichiers et répertoires d’un emplacement à l’autre de manière efficace.

L’emplacement de la sauvegarde peut se trouver soit sur la machine local soit un serveur distant.

Les importantes fonctionnalités de rsync

  • Vitesse: A la première utilisation, rsync duplique tout le contenu des répertoires depuis la source vers la destination. Les fois d’après, rsync ne transfère vers l’emplacement de destination seulement les blocs ou octets modifiés, ce qui a pour conséquence de rendre le transfert très rapide.
  • Sécurité: Pendant le transfert rsync permet le chiffrement des données en utilisant le protocole SSH.
  • Moins de bande passante:  rsync compresse et décompresse (envoie/réception) les données bloc par bloc.
  • Privileges: Aucun privilège spécial n’est nécessaire pour installer et exécuter rsync.

syntaxe

 La source et la destination peuvent être locales ou distantes. Lorsque c’est distant, il est nécessaire d’indiquer le nom de la connexion, du serveur distant ainsi que le chemin.

Exemple 1. Synchroniser deux répertoires au sein d’une même machine

Pour synchroniser deux répertoires sur une machine locale utiliser la commande rsync -zvr

Dans l’exemple rsync ci-dessus:

  • -z est pour activer la compression
  • -v pour verbeux
  • -r pour récursif

Maintenant, laissez moi vous montrer l’horodate sur l’un des fichiers qui a été copié. Comme vous pouvez le voir ci-dessous, rsync n’a pas préservé l’horodate lors la synchronisation.

Exemple 2. Préserver l’horodate lors de la synchronisation en utilisant rsync -a

L’option -a de rsync indique l’utilisation du mode archive. L’option -a possède les caractéristiques suivantes:

  • Mode récursif
  • Préserver les liens symboliques
  • Préserver les permissions
  • Préserver l’horodate
  • Préserver les propriétaires et groupes

Maintenant, exécutons la même commande que celle fournie dans l’exemple 1 (mais avec l’option -a de rsync) comme représenté ci-dessous:

 Comme vous pouvez le voir ci-dessous rsync a préservé l’horodate:

 Exemple 3. Synchroniser un fichier seulement

Pour copier seulement un fichier, spécifiez le nom du fichier à la commande rsync, tel qu’indiqué ci-dessous:

Exemple 4. Synchroniser des fichiers vers un serveur distant

Vous pouvez avec rsync synchroniser des fichiers et répertoires entre une machine locale et un serveur distant.

Pour se synchroniser avec un serveur distant, vous devez spécifier le nom d’utilisateur ainsi que l’adresse IP du serveur distantVous devez également spécifier le répertoire de destination du serveur distant. Le format est le suivant: utilisateur@nom_machine:chemin

Comme vous pouvez le constater ci-dessus, pour utiliser rsync avec un serveur distant, le mot de passe est requis.

Parfois vous ne voulez pas entrer de mot passe pour sauvegarder des fichiers locaux vers un serveur distant. Par exemple, si vous avez un script shell de sauvegarde, qui copie des fichiers locaux vers un serveur distant avec rsync, vous aurez besoin que rsync ne demande pas de mot de passe.

Pou ce faire, configurez ssh sans mot de passe de connexion.

Exemple 5. Synchroniser des fichiers depuis un serveur distant

Lorsque vous voulez synchroniser des fichiers depuis un serveur distant vers votre machine locale, spécifiez le chemin distant dans source et le chemin local dans la cible, comme indiqué ci-dessous.

 Exemple 6. Shell distant pour synchronisation

rsync vous permet de spécifier le shell distant que vous souhaitez utiliser. Vous pouvez utiliser rsync ssh pour permettre la connexion à distance sécurisée.

Utilisez rsync -e ssh pour spécifier quel shell distant utiliser. Ici, rsync va utiliser ssh.

Exemple 7. Ne pas écraser les fichiers de destination modifiés

Dans une situation de synchronisation typique, si un fichier est modifié à la destination, nous pourrions ne pas vouloir écraser le fichier avec l’ancien fichier de la source.

Utilisez l’option -u de rsync pour faire cela. (c.-à-d.  ne pas écraser un fichier à la destination, s’il a été modifiée).

Dans l’exemple suivant, le fichier de destination appelé file.c a déjà été modifié. Ainsi, il ne sera pas écrasé avec rsync -u.

Exemple 9. Voir la progression de rsync durant le transfert

Lorsque vous utilisez rsync pour la sauvegarde, vous voudrez peut-être connaître la progression de la sauvegarde. Combien de fichiers sont copiés, à quel rythme, etc.

L’option rsync –progress affiche des informations détaillées d’avancement de l’exécution de rsync comme indiqué ci-dessous.

Exemple 10. Supprimer les fichiers créés sur la cible

Si un fichier est absent à la source, mais présent sur la cible, vous voudriez peut-être que rsync supprime le fichier sur la cible.

Dans ce cas, utilisez l’option —delete comme indiqué ci-dessous. L’option –delete de rsync supprime les fichiers qui ne sont plus présent dans le répertoire source.

La cible a le nouveau fichier appelé nouveau-fichier.txt, lors de la synchronisation depuis la source avec l’optiondelete, nouveau-fichier.txt a était enlevé.

Exemple 11. Ne pas créer de nouveau fichier sur la cible

Si vous le souhaitez, vous pouvez mettre à jour (synchroniser), seulement les fichiers déjà existants sur la cible. En cas de nouveaux fichiers présents au sein de la source, donc absent sur la cible, vous pouvez interdire la création de ces nouveaux fichiers sur la cible. Pour cette fonction, utilisez la commande rsync avec l’option –existing.

Tout d’abord, ajout de nouveaufichier.txt sur la source.

Ensuite, exécution de rsync depuis la cible.

En observant la sortie ci-dessus, nous pouvons constater que nouveau-fichier.txt n’a pas été reçu.

Exemple 12. Voir les modifications entre la source et la destination

Cette option est utile pour voir quels sont les différences des fichiers et répertoires entre la source et la cible.

À la source:

À la destination:

 Dans l’exemple ci-dessus, entre la source et la destination, il existe deux différences. Tout d’abord, le propriétaire et le groupe du fichier memcpy.c diffèrent. Ensuite, la taille diffère pour le fichier memset.c.

Voyons maintenant comment rsync affiche cette différence. L’option -i affiche les éléments modifiés.

Sur la sortie, les modifications sont indiquées par 9 caractères placés devant le nom de chaque fichier ou répertoire.

Dans notre exemple, les caractères se trouvant devant les noms de memcpy.c (et memset.c) ont les significations suivantes:

Exemple 13. Inclure et exclure des fichiers à l’aide de motif (pattern)

rsync vous permet de fournir un motif (pattern) pour les fichiers ou répertoires que vous souhaitez inclure ou exclure durant la synchronisation.

Dans l’exemple ci-dessus, seulement les fichiers commençant par « r » sonr inclus (rsync include) et tous les autres sont exclus (rsync exclude ‘*’).

Exemple 14. Ne pas transférer les gros fichiers

Vous pouvez demander à rsync de ne pas transférer des fichiers qui sont supérieures à une taille spécifique en utilisant l’option rsyncmax–size.

maxsize = 300K demande à rsync de transférer uniquement les fichiers qui sont inférieures ou égales à 300K. Vous pouvez indiquer M pour mégaoctets et G pour gigaoctets.

Exemple 15. Transférez les fichiers en entier

Une des caractéristiques principales de rsync est qu’au lieu d’envoyer des fichiers en entier, il n’envoie que les blocs modifiés.

Si la bande passante du réseau n’est pas un souci pour vous, mais que vous êtes par contre limité en CPU, vous pouvez demander à transférer les fichiers complets, en utilisant rsyncW.

Le processus rsync sera plus rapide, car les contrôles sur la source et la cible ne seront plus effectués.

Laisser un commentaire