Rsync
rsync est un logiciel libre de synchronisation de fichiers, distribué sous licence GNU GPL, similaire à l'outil rcp d'Unix.
Il est extrêmement utile et puissant pour synchroniser des répertoires et des fichiers, typiquement lors de sauvegardes incrémentielles ou différentielles.
La liste des options est impressionnante, en voici quelques unes :
- -r : récursif : traite les sous-répertoires
- -a : mode archive
- -z : compresse les données pendant le transfert (utile en cas d'envoi de gros fichiers sur une machine distante, contre-productif en local ou s'il y a beaucoup de petits fichiers)
- --progress : affiche la progression des transferts
- --dry-run : mode test, aucun transfert réel (utile pour vérifier la commande avant l'exécution réelle)
- --ignore-existing : seuls les fichiers manquants en destination sont créés
- --update : les fichiers à jour ou nouveaux de la source sont créés en destination
Voici quelques cas d'usage :
1 Synchronisation
La commande suivante met à jour le répertoire /var/www dans la destination /var (ne pas écrire le nom du répertoire source dans le chemin de la destination) :
rsync -ra --progress /var/www 10.0.0.1:/var
Les nouveaux fichiers et les fichiers à jour de la source sont écrits dans la destination. Les fichiers supplémentaires dans la destination sont supprimés.
2 Insertion uniquement
Avec cette commande, seuls les fichiers de la source manquants en destination sont écrits dans la destination :
rsync --ignore-existing -ra --progress /var/www 10.0.0.1:/var
3 Insertion et mise à jour
Avec cette commande, les fichiers de la source manquants en destination sont écrits dans la destination et les fichiers plus récents en source sont mis à jour dans la destination :
rsync --update -ra --progress /var/www 10.0.0.1:/var