94 lines
3.6 KiB
Markdown
94 lines
3.6 KiB
Markdown
---
|
|
title: Howto Rsync
|
|
categories: network
|
|
...
|
|
|
|
**rsync** permet de réaliser des copies et synchronisations, depuis ou vers un serveur distant, ou encore localement. **rsync** propose de nombreuses options pour configurer le comportement avant/pendant/après les transfers.
|
|
|
|
* [https://rsync.samba.org/](https://rsync.samba.org/)
|
|
* [https://fr.wikipedia.org/wiki/Rsync](https://fr.wikipedia.org/wiki/Rsync)
|
|
|
|
|
|
## Installation
|
|
|
|
~~~
|
|
# apt install rsync
|
|
|
|
$ rsync --version
|
|
rsync version 3.1.2 protocol version 31
|
|
~~~
|
|
|
|
## Utilisation de base
|
|
|
|
Copier un fichier `foo.txt` vers un serveur distant `example.com` :
|
|
|
|
~~~
|
|
$ rsync /tmp/foo.txt example.com:/tmp/
|
|
~~~
|
|
|
|
Copier tout un dossier vers un serveur distant, avec `-r` ou `--recursive` :
|
|
|
|
~~~
|
|
$ rsync --recursive /tmp/bar example.com:/tmp/
|
|
~~~
|
|
|
|
Copier un dossier depuis le serveur vers son poste :
|
|
|
|
~~~
|
|
$ rsync -r example.com:/tmp/bar /tmp/
|
|
~~~
|
|
|
|
La synchronisation peut se faire localement :
|
|
|
|
~~~
|
|
$ rsync -r /tmp/bar/ /tmp/bar2/
|
|
~~~
|
|
|
|
Utiliser le mode archive, avec `-a` ou `--archive`. Ce mode est équivalent à `-rlptgoD` et préserve la plupart des attributs :
|
|
|
|
~~~
|
|
$ rsync --archive /tmp/bar example.com:/tmp/
|
|
~~~
|
|
|
|
|
|
Liste des paramètres les plus communs :
|
|
|
|
* `-l`, `--links` : Préserve les liens symboliques
|
|
* `-o`, `--owner` : Préserve le propriétaire
|
|
* `-g`, `--group` : Préserve le groupe
|
|
* `-p`, `--perms` : Préserve les permissions
|
|
* `-n`, `--dry-run` = Les actions ne sont pas réalisées, juste listées
|
|
* `-z`, `--compress` = Compresse les fichiers pour accélerer le transfer
|
|
* `-v`, `--verbose` : Mode verbeux
|
|
* `-q`, `--quiet` : Pas de sortie en stdout
|
|
* `-h`, `--human-readable` : Les infos sont lisibles par un humain, conversion à l'unité de mesure la plus proche. Exemple 1249284o = 1.1M.
|
|
* `-d`, `--dirs` : Copie les dossiers sans avoir besoin de lui indiquer qu'il faut le faire récursivement
|
|
* `--bwlimit=RATE` : Limite le transfert. Attention c'est en unité de 1024 octets. On peut mettre des suffixes. Exemple 1.5m (1.5Mo/s).
|
|
* `--partial` : Conserve les fichiers transférés partiellement. Idéal pour reprendre un précédent transfert interrompu.
|
|
* `--stats` : Affiche des statistiques à la fin du transfert. Idéal si combiné avec `-h` pour avoir le résumé du transfert, vitesse moyenne, octets transférés, etc.
|
|
* `-4`, `--ipv4` : Utiliser une connexion IPv4
|
|
* `-6`, `--ipv6` : Utiliser une connexion IPv6
|
|
* `-P`, `--progress` : Suivre la progression du transfère d'un fichier
|
|
* `-r`, `--recursive` : Mode récursif
|
|
* `-a`, `--archive` : Archive, repecter les liens symboliques
|
|
* `--delete` : Supprimer les données distantes qui sont absentes depuis la source
|
|
* `--delete-excluded` : Supprimer les données distantes qui sont exclus sur la source.
|
|
* `--ignore-errors` : Ignore les erreurs d'entrées/sorties sur les opérations de suppression.
|
|
* `-e`, `--rsh=COMMAND` : Permet de changer le remote shell par défaut. Très utilse pour spécifier le port à ssh. Exemple : `-e 'ssh -p 2222'`.
|
|
|
|
## FAQ
|
|
|
|
### connection unexpectedly closed
|
|
|
|
Si l'on obtient un erreur ressemblant à :
|
|
|
|
~~~
|
|
Write failed: Broken pipe
|
|
rsync: connection unexpectedly closed (128109911 bytes received so far) [receiver]
|
|
rsync error: error in rsync protocol data stream (code 12) at io.c(601) [receiver=3.0.7]
|
|
rsync: connection unexpectedly closed (128109911 bytes received so far) [generator]
|
|
rsync error: unexplained error (code 255) at io.c(601) [generator=3.0.7]
|
|
~~~
|
|
|
|
Cela peut venir dans certains cas d'un routeur coupant agressivement les sessions en cas d'inactivité. Dans ce cas, une solution est d'ajouter l'option suivante en Rsync Over SSH : `-e "ssh -o ServerAliveInterval=5"`
|