{{tag>synchronisation}}
======Rsync======
**Rsync** (remote synchronisation) est un outil de synchronisation de fichiers.
Syntaxe (comme décrite dans le man) :
rsync [OPTION]... SRC [SRC]... DEST
En utilisant le protocole SSH :
rsync [OPTION]... SRC [SRC]... [USER@]HOST:DEST
rsync [OPTION]... [USER@]HOST:SRC [DEST]
=====Paramètres courants=====
-a (archive mode) : équivalent de -rlptgoD
-r (recursive) : mode récursif, tient compte des sous-dossiers
-z : transfert en compressant les données
-n --dry-run : lancer le rsync pour tester, sans transférer aucun fichier
-v (verbose) : mode verbeux
-q (quiet) : mode moins verbeux
-l (links) : copie les liens symboliques comme liens symboliques
-L (copy-links) : transforme les liens symboliques par les fichiers référencés
-c (checksum) : utilise une sommed e contrôle plutôt que la date et la taille pour comparer les fichiers
-e : spécifie un shell distant
-g (group) : conserve le groupe du fichier
-o (owner) : conserve le propriétaire du fichier
-p (permission) : conserve les permissions du fichier
-t (time) : conserver la date du fichier
-A (acls) : préserve les ACLs
-X (xattrs) : préserve les attributs étendus
--delete : supprimer dans la dest. les fichiers n''existant pas dans la source
--force : force la suppression des répertoires même non-vides
--progress : affiche la progression par fichier pendant le transfert (la liste des fichiers traités)
--info progress2 : affiche le progression globale de la synchronisation
--stats : affiche des stats à la fin de la synchronisation :
Number of files: 8557
Number of files transferred: 4
Total file size: 6074978567 bytes
Total transferred file size: 17507 bytes
Literal data: 16107 bytes
Matched data: 1400 bytes
File list size: 242295
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 281060
Total bytes received: 27088
sent 281060 bytes received 27088 bytes 16656.65 bytes/sec
total size is 6074978567 speedup is 19714.48
--no- : annule l'option (ex : --no-o annule l'option -o)
--exclude 'REGEX' : exclure de la synchronisation les fichiers matchant la pattern ; peut être invoqué plusieurs fois pour plusieurs motifs, ou utilisé ainsi : --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost found"}
=====Exemples d'utilisation=====
Différents exemples, en vrac :
rsync -progt --stats --exclude '*.load' /mnt/data/* /mnt/data-bck
# avec 3 répertoires source
rsync -av --delete --stats /home/dude /etc /var/log /mnt/bck
# sauvegarder des fichiers vers une machine distante en SSH sur le port SSH non-standard 2222 :
rsync -ptrzvL -e "ssh -p 2222" --delete /home/dude /var/log/htdocs dude@srv-distant:/home/dude/sync/
# sauvegarder plusieurs répertoires d'une machine distante vers la machine locale, en SSH :
rsync -ptrzvL -e ssh \
bck_user@machine_distante:'/etc/nagios/conf.d \
/usr/lib64/nagios/plugins \
/usr/local/nagios/libexec \
/opt/pnp4nagios' \
/backup_local
=====Liens=====
* [[http://man.developpez.com/man1/rsync.1.php|man traduit en français]]