- Comprendre l'intérêt de
rsync
par rapport à d'autres outils - Savoir effectuer les opérations de base avec
rsync
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 :
-
-a, --archive
mode archive (typiquement ce qu'on veut 95% du temps) -
-v, --verbose
mode verbeux (afficher les éléments au fur et à mesure qu'il sont copiés) -
-P, --progress
montre l'avancement, fichier par fichier -
-h, --human-readable
montre les tailles au format humain (à utiliser avec-P
) -
-x, --exclude <MOTIF>
exclut des éléments de la copie.
$ 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
rsync
peut être utilisé comme alternative (plus efficace) à scp
.
Copie depuis une machine distante:
rsync -a [email protected]:study-cases .
Copie vers une machine distante:
rsync -a study-cases [email protected]:
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 [email protected]:
building file list ...
1 file to consider
my-big-file.tar.gz
301.75M 22% 71.97MB/s 0:00:14