Aller au contenu

rsync

À quoi il sert

rsync copie une arborescence vers un autre répertoire ou une autre machine, en général à travers SSH. Il compare source et destination (par taille et date de modification, ou par somme de contrôle avec -c) et ne transfère que ce qui a changé, et même, pour un gros fichier modifié, seulement les blocs différents. Le mode archive -a conserve liens symboliques, droits, dates, propriétaires et groupes ; -H, -A et -X y ajoutent liens physiques, ACL et attributs étendus. --delete rend la destination identique à la source, et --link-dest produit des copies datées où les fichiers inchangés sont des liens physiques vers la copie précédente.

Quand le choisir

Pour copier ou migrer des données en préservant leurs métadonnées (déplacer un répertoire vers un nouveau volume, répliquer une arborescence vers une autre machine), et pour des copies datées simples. Ce n'est pas un outil de sauvegarde complet : pas de chiffrement des données au repos, pas de déduplication entre fichiers, et une erreur ou un rançongiciel se propagent à la copie au prochain passage. Pour sauvegarder vers un stockage objet, avec chiffrement et rétention, on préfère restic ou BorgBackup.

Points d'attention

  • La barre oblique finale de la source change tout : rsync -a src/ dest/ copie le contenu de src, rsync -a src dest/ crée dest/src. Avec --delete, une erreur ici efface la destination.
  • Toujours un essai d'abord : -n (aucune modification) et -i (détail de chaque changement).
  • -a n'inclut ni -H, ni -A, ni -X ; pour une copie fidèle d'un système, utilisez -aHAX, et --numeric-ids pour garder les UID et GID tels quels quand les noms de comptes diffèrent entre machines.
  • Le code de sortie 24 (« some files vanished ») signale des fichiers disparus pendant la copie : normal sur un répertoire actif, à distinguer d'une vraie erreur dans un script.
  • Les copies créées par --link-dest partagent les mêmes octets : un bloc corrompu touche toutes les copies qui le référencent.
  • Par SSH, limitez ce que la clé du compte de copie peut faire (authorized_keys, règle sudo restreinte à rsync --server) : un accès en lecture à /etc vaut beaucoup.

Par où commencer

La leçon Sauvegarder et restaurer un serveur du cours Linux : administration système, qui copie la configuration de Signalements avec rsync -aHAX --numeric-ids et produit des copies datées avec --link-dest. Puis la page de manuel rsync(1) et le site du projet.