module-1-Environnement-Unix

Logo

Environnement Unix

View the Project on GitHub DU-Bii/module-1-Environnement-Unix

rsync

Objectif

Intérêt

Syntax: rsync [options] <SOURCE> <DESTINATION>

rsync est un outil très puissant servant à faire notamment de la copie et du transfert de fichier. Sa particularité est qu’il est capable de détecter des fichiers ou dossier ajoutés/supprimés/modifiés dans la SOURCE et de ne copy que ceux-ci dans le répertoire de DESTINATION.

Cette une différence majeure avec cp qui lui copie SOURCE vers DESTINATION de manière brutale.

Cette capacité à ne transférer que la partie “utile” de la SOURCE permet d’économiser un temps précieux lors de la copie de fichiers volumineux.

rsync a de nombreuses options, les plus utilisées étant :

Copie simple

$ cd ~/dubii
$ mkdir ~/tmp
$ rsync -av study-cases ~/tmp
building file list ... done
study-cases/
study-cases/.gitignore
study-cases/LICENSE.txt
study-cases/README.md -> study-cases.md
study-cases/_config.yml
study-cases/study-cases.Rproj
study-cases/study-cases.html
study-cases/study-cases.md
study-cases/.git/
study-cases/.git/HEAD
study-cases/.git/config
[...]

Si seulement un fichier est modifié et qu’on relance la copie, seulement ledit fichier est copié :

$ # Modifying README.md
$ echo "modifying README" >> study-cases/study-cases.md
$ # Making the copy again
$ rsync -av study-cases ~/tmp
sending incremental file list
study-cases/study-cases.md

sent 8,153 bytes  received 67 bytes  16,440.00 bytes/sec
total size is 50,480,444  speedup is 6,141.17

Copie depuis/vers une machine distance

rsync peut être utilisé comme alternative (plus efficace) à scp.

Copie depuis une machine distante:

rsync -a login@server.domain:study-cases .

Copie vers une machine distante:

rsync -a study-cases login@server.domain:

Copie de fichiers volumineux

Lorsqu’on copie des fichiers volumineux, il peut être intéressant d’utiliser les options -Ph pour voir l’avancement du processus :

$ rsync -aPh my-big-file.tar.gz login@server.domain:
building file list ...
1 file to consider
my-big-file.tar.gz
     301.75M  22%   71.97MB/s    0:00:14