synchronisation
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]
-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"}
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