Outils pour utilisateurs

Outils du site


linux:rsync (lu 29890 fois)

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
linux:rsync [25-02-2012 22:37]
edmc73 Page moved from linux:edmc73:linux:rsync to linux:edmc73:linux:edmc73:rsync
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'autre, vous pouvez utiliser **rsync** qui est plus rapide que **scp** et qui en plus permet de préserver les informations de propriétaire des fichiers. 
 + 
 +Pour copier un fichier ou dossier  
 + 
 +  rsync -avzP [SOURCE] [DESTINATION] 
 +  rsync -a /home/users toto@serveur:/sauvegarde/
 +  rsync -avP tata@serveur:/var/archives/mysql.tar.gz /var/archive/
 + 
 +  * ''-a'' est le mode archive qui remplace les options ''-rlptgoD'' recursive / copie liens symboliques / copie les permissions / copie la date et heure / copie le groupe / copie le propriétaire / copie les fichiers spéciaux 
 +  * ''-v'' est le mode verbeux  
 +  * ''-z'' permet la compression pour utiliser moins de bande passante 
 +  * ''-P'' permet d'afficher la progression de transfert 
 + 
 +Ici seul l'option ''-a'' est importante. 
 + 
 +Si votre source contient des liens physiques (hard link), alors ajoutez l'option ''-H'' 
 + 
 +Si votre serveur de destination a un port ssh spécifique (ex: 2222) 
 +  rsync -avP -e "ssh -p 2222" user@serveur:/path/to/files/ /local/path/ 
 + 
 +===== Sous Windows ===== 
 + 
 +Télécharger **cwRsync** => https://www.itefix.net/cwrsync# 
 + 
 +Parametrer les variables d'environnement, lancer dans un terminale le script cwrsync.cmd 
 + 
 +  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 '':'' et ''\'' seront interprétés pour autre chose. 
 + 
 +Pour accèder au lecteur C:, il faut écrire ''/cygdrive/c'' et remplacer les back slash par des slashs 
 + 
 +Exemple: 
 +  rsync -avi /cygdrive/c/work/ /cygdrive/d/work/doc/ 
 + 
 +===== 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'erreur ====+===== Message d'erreur =====
  
   rsync: failed to set times on "/." (in backup): Operation not permitted (1)   rsync: failed to set times on "/." (in backup): Operation not permitted (1)
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:dossier/
 +
 +Puis un jour on veut déplacer nos données sur la source et on synchronise
 +  mv dossier/fichierA dossier/fichierB
 +  rsync -a dossier/ serveur:dossier/
 +Et là c'est le drame. Il retransfère le fichierB.
 +
 +L'astuce c'est d'utiliser l'équivalence entre ''mv a b'' et ''ln a b; rm a'', mais on va rajouter un rsync entre les deux.
 +
 +  cp -al dossier/fichierA dossier/fichierB
 +  rsync -aH dossier/ serveur:dossier/
 +  rm dossier/fichierA
 +  rsync -aH --delete dossier/ serveur:dossier/
 +
 +J'utilise ''cp -al'' et non ''ln'', car ça permet de conserver les permissions et de faire le machin recursivement pour un répertoire si c'est un répertoire qui est bougé.
 +
 +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, et à l'étape suivante il supprime fichierA.
 +
 +===== Performance =====
 +
 +https://icesquare.com/wordpress/how-to-improve-rsync-performance/
 +
 +rsync est plus performant lorsque l'on utilise le daemon rsyncd
 +
 +===== Voir ce qui va être transféré =====
 +
 +  rsync -nrv --ignore-existing source/ destination/ | xargs -I {} ls -l source/{}
 +
 +  * -n fait un dry run, n'execute rien
 +  * -r pour le récursif
 +  * -v pour le verbose
 +
 +On passe tout ça dans xargs pour faire un ls -l sur chaque fichier
linux/rsync.1330205847.txt.gz · Dernière modification: 04-04-2013 22:05 (modification externe)