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 desrc,rsync -a src dest/créedest/src. Avec--delete, une erreur ici efface la destination. - Toujours un essai d'abord :
-n(aucune modification) et-i(détail de chaque changement). -an'inclut ni-H, ni-A, ni-X; pour une copie fidèle d'un système, utilisez-aHAX, et--numeric-idspour 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-destpartagent 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èglesudorestreinte àrsync --server) : un accès en lecture à/etcvaut 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.