Table of Contents

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-<opt> : annule l'option <opt> (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