Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
linux:rsync [07-04-2010 08:44] edmc73 créée |
linux:rsync [05-01-2021 15:04] (Version actuelle) edmc73 [Performance] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== rsync ===== | + | ====== rsync ====== |
- | ==== Serveur ==== | + | ===== Usage courant ===== |
+ | |||
+ | Pour copier simplement des fichiers d'un serveur à l' | ||
+ | |||
+ | Pour copier un fichier ou dossier | ||
+ | |||
+ | rsync -avzP [SOURCE] [DESTINATION] | ||
+ | rsync -a /home/users toto@serveur:/ | ||
+ | rsync -avP tata@serveur:/ | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | Ici seul l' | ||
+ | |||
+ | Si votre source contient des liens physiques (hard link), alors ajoutez l' | ||
+ | |||
+ | Si votre serveur de destination a un port ssh spécifique (ex: 2222) | ||
+ | rsync -avP -e "ssh -p 2222" user@serveur:/ | ||
+ | |||
+ | ===== Sous Windows ===== | ||
+ | |||
+ | Télécharger **cwRsync** => https:// | ||
+ | |||
+ | Parametrer les variables d' | ||
+ | |||
+ | c:\Program Files\cwRsync\cwrsync.cmd | ||
+ | |||
+ | Comme **rsync** est un programme unix à la base, on ne peut pas spécifier un chemin avec c:\ car les caractères '':'' | ||
+ | |||
+ | Pour accèder au lecteur C:, il faut écrire ''/ | ||
+ | |||
+ | Exemple: | ||
+ | rsync -avi / | ||
+ | |||
+ | ===== Serveur | ||
Fichier de config de base à la con vite fait mal fait... | Fichier de config de base à la con vite fait mal fait... | ||
Ligne 21: | Ligne 58: | ||
- | ==== Client ==== | + | ===== Client |
Ma commande sur la machine client pour sauvegarder | Ma commande sur la machine client pour sauvegarder | ||
Ligne 43: | Ligne 80: | ||
| | ||
- | ==== Message d' | + | ===== Message d' |
rsync: failed to set times on "/ | rsync: failed to set times on "/ | ||
Ligne 49: | Ligne 86: | ||
Pour résoudre ce problème, j'ai simplement fait un | Pour résoudre ce problème, j'ai simplement fait un | ||
chown nobody.nogroup repertoire_de_sauvegarde | chown nobody.nogroup repertoire_de_sauvegarde | ||
- | | ||
+ | ===== Déplacement de gros volume avant un rsync ===== | ||
+ | |||
+ | Initialement pour synchroniser on lance la commande | ||
+ | rsync -a dossier/ serveur: | ||
+ | |||
+ | Puis un jour on veut déplacer nos données sur la source et on synchronise | ||
+ | mv dossier/ | ||
+ | rsync -a dossier/ serveur: | ||
+ | Et là c'est le drame. Il retransfère le fichierB. | ||
+ | |||
+ | L' | ||
+ | |||
+ | cp -al dossier/ | ||
+ | rsync -aH dossier/ serveur: | ||
+ | rm dossier/ | ||
+ | rsync -aH --delete dossier/ serveur: | ||
+ | |||
+ | J' | ||
+ | |||
+ | Et comme ça, ça passe très bien, il détecte que fichierA et fichierB sont des hard link, il crée fichierB comme un hard link sur fichierA dans la destination, | ||
+ | |||
+ | ===== Performance ===== | ||
+ | |||
+ | https:// | ||
+ | |||
+ | rsync est plus performant lorsque l'on utilise le daemon rsyncd | ||
+ | |||
+ | ===== Voir ce qui va être transféré ===== | ||
+ | |||
+ | rsync -nrv --ignore-existing source/ destination/ | ||
+ | |||
+ | * -n fait un dry run, n' | ||
+ | * -r pour le récursif | ||
+ | * -v pour le verbose | ||
+ | |||
+ | On passe tout ça dans xargs pour faire un ls -l sur chaque fichier |