[rsync](https://rsync.samba.org/) est un logiciel libre pour synchroniser des fichiers depuis ou vers un serveur distant, ou encore localement. **rsync** permet notamment de réaliser des synchronisations incrémentales que nous utilisons pour réaliser des migrations de données et des sauvegardes.
Voici une utilisation basique pour transférer un répertoire vers un serveur distant via SSH (la première commande fait un _dry-run_ pour vérifier que tout est Ok, la seconde envoie les données) :
*`--delete` : Supprime les données « en trop » qui sont sur la destination mais pas sur la source (à utiliser dans 99.9% des cas et pourtant ce n'est pas le défaut !)
*`--numeric-ids` : Conserve les UID/GID originaux même si owner/group ont des UID/GID différents sur la destination (à utiliser en général, sauf dans les cas de migration de données d'un serveur vers un autre)
*`--stats` : Affiche des statistiques à la fin du transfert. Idéal si combiné avec `-h` pour avoir le résumé du transfert, vitesse moyenne, octets transférés, etc.
*`--ignore-errors` : Ignore les erreurs d'entrées/sorties sur les opérations de suppression
*`-e`, `--rsh=COMMAND` : Permet de changer le remote shell par défaut. Très utile pour spécifier un port différent pour SSH. Exemple : `-e "ssh -p 2222"`
*`-C`, `--cvs-exclude` : Ignore automatiquement les fichiers temporaires, à la manière de CVS
*`-x`, `--one-file-system` : Rester sur le même système de fichier pour la source. Exemple: `rsync -x /var /mnt`, si `/var/log` est un point de montage, il ne sera pas copié dans `/mnt`.
Cela peut venir dans certains cas d'un routeur coupant agressivement les sessions en cas d'inactivité. Dans ce cas, une solution est d'ajouter l'option suivante en Rsync Over SSH : `-e "ssh -o ServerAliveInterval=5"`
Les fichiers de quota (`aquota.user` et `aquota.group`) ne peuvent pas être directement synchronisé par rsync car ces fichiers sont gérés par le noyau et possédant des attributs étendu les rendant immuables.
Il est donc conseillé de les copier localement avec `cp` pour avoir une copie de ces fichiers sans attributs étendus et de copier ces fichiers plutôt que les originaux. Pensez aussi à exclure les fichiers des quotas originaux avec :