Outils pour utilisateurs

Outils du site


tech:notes_rsync

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:notes_rsync [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:notes_rsync [2025/10/17 16:26] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 {{tag>Brouillon}} {{tag>Brouillon}}
  
-Notes rsync+Notes rsync
  
 Voir aussi Voir aussi
Ligne 11: Ligne 12:
 * [[reseau_linux_pile_tcp_ip_rto_min_scripts|Mesures - rsync]] * [[reseau_linux_pile_tcp_ip_rto_min_scripts|Mesures - rsync]]
  
-=== CD / ISO+### CD / ISO
  
 Source https://www.debian.org/CD/mirroring/ Source https://www.debian.org/CD/mirroring/
  
-<code ->+~~~
 Veuillez utiliser au moins les options --times --links --hard-links --partial --block-size=8192.  Veuillez utiliser au moins les options --times --links --hard-links --partial --block-size=8192. 
 Cela conservera la date de dernière modification, les liens symboliques et durs et un bloc de 8192 octets Cela conservera la date de dernière modification, les liens symboliques et durs et un bloc de 8192 octets
Ligne 21: Ligne 22:
 Lorsque la date de dernière modification et la taille d'un fichier n'ont pas été modifiées,  Lorsque la date de dernière modification et la taille d'un fichier n'ont pas été modifiées, 
 rsync ignore le fichier, aussi --times est réellement nécessaire rsync ignore le fichier, aussi --times est réellement nécessaire
-</code>+~~~
  
-=== Machine distante vers machine distante+### Machine distante vers machine distante
  
-<code bash>+~~~bash
 rsync -ax backup:/home/wiki wiki:/home/ rsync -ax backup:/home/wiki wiki:/home/
-</code>+~~~
  
-<code ->+~~~
 The source and destination cannot both be remote. The source and destination cannot both be remote.
-</code>+~~~
  
-<code bash>+~~~bash
 ssh -A remotehostA rsync /remote/file/on/host/a remoteHostB:/destination/ ssh -A remotehostA rsync /remote/file/on/host/a remoteHostB:/destination/
-</code>+~~~
  
 Une autre solution consiste à utiliser SSHFS **Mais les UID/GID ne sont pas préservés** Une autre solution consiste à utiliser SSHFS **Mais les UID/GID ne sont pas préservés**
  
-==== Pb SSHFS Transport endpoint is not connected+#### Pb SSHFS Transport endpoint is not connected
  
-<code bash>+~~~bash
 fusermount -uz /data fusermount -uz /data
-</code>+~~~
  
-<code - /etc/fuse.conf>+''/etc/fuse.conf'' 
 +~~~
 user_allow_other user_allow_other
-</code>+~~~
  
-<code bash> +~~~bash 
-sudo sshfs -d -o allow_other -o reconnect -o ServerAliveInterval=15 root@192.168.2.12:/var/www /data -p 12345 -C +sshfs -o allow_other,ro -o reconnect -o ServerAliveInterval=15 root@192.168.2.12:/var/www /data -p 12345 -C 
-</code>+~~~
  
-sshfs -o ro server:/ ~/mnt/plop+Pour debug ajouter l'option ''-d'' 
 +~~~bash 
 +sshfs -d -o allow_other,ro -o reconnect -o ServerAliveInterval=15 root@192.168.2.12:/var/www /data -p 12345 -C 
 +~~~
  
-=== Gros fichiers avec plein de zéros, iso...+### Gros fichiers avec plein de zéros, iso...
  
 Voir l'option **--sparse ** Voir l'option **--sparse **
-<code ->+~~~
 -S, --sparse                traite les fichiers à trous efficacement -S, --sparse                traite les fichiers à trous efficacement
-</code>+~~~
  
-<code ->+~~~
 $ ls -lsh $ ls -lsh
 total 22G total 22G
Ligne 68: Ligne 73:
 7,7G -rw-r--r-- 1 jibe jibe 120G août   9 11:18 VM152-SUPPMSM-V-clone.img 7,7G -rw-r--r-- 1 jibe jibe 120G août   9 11:18 VM152-SUPPMSM-V-clone.img
  14G -rw-r--r-- 1 jibe jibe  14G févr. 24 09:15 VM152-SUPPMSM-V-clone.qcow2  14G -rw-r--r-- 1 jibe jibe  14G févr. 24 09:15 VM152-SUPPMSM-V-clone.qcow2
-</code>+~~~
  
-=== Copie dossier+### Copie dossier
  
 Ne pas oublier le barre oblique (slash) à la fin Ne pas oublier le barre oblique (slash) à la fin
-<code bash>+~~~bash
 rsync -ax /mnt/usb_disk/ /mnt/usb_disk2/ rsync -ax /mnt/usb_disk/ /mnt/usb_disk2/
-</code>+~~~
  
-=== Diff - diffing  
  
-<code bash>+### Utilisation de l'option --files-from 
 + 
 +~~~bash 
 +rsync -anv --files-from=push.lst / /tmp/plop/ 
 +~~~ 
 + 
 + 
 +### rsync avec find 
 + 
 +~~~bash 
 +# rsync --files-from=<(find ~/DATA/ -type f -name '*.txt' -printf "%P\n") ~/DATA/ ~/DATA2/ 
 +# find ~/DATA/ -name '*.txt' -printf %P\\0 | rsync --files-from=- --from0 ~/DATA/ ~/DATA2/ 
 + 
 +cd ~/DATA/ 
 +find . -type f -name '*.txt' -exec rsync -av -R {} ~/DATA2/ \; 
 +~~~ 
 + 
 + 
 + 
 + 
 +### Diff - diffing  
 + 
 +~~~bash
 diff -r --exclude='.git' --exclude='.gitlab' projet_plop_fork/ projet_plop_orig/ diff -r --exclude='.git' --exclude='.gitlab' projet_plop_fork/ projet_plop_orig/
-</code>+~~~
  
 Équivalent avec rsync Équivalent avec rsync
-<code bash> +~~~bash 
-rsync -rcvn --delete --exclude='.git' --exclude='.gitlab' projet_plop_fork/ projet_plop_orig/ +rsync -rcvn --delete --exclude='.git' --exclude='.gitlab' --itemize-changes projet_plop_fork/ projet_plop_orig/ 
-</code>+~~~
  
  
  
  
-=== Droits+### Droits
  
 chmod - exemple cd iso9660 chmod - exemple cd iso9660
Ligne 99: Ligne 125:
 **D** pour Directory **D** pour Directory
  
-<code bash>+~~~bash
 rsync -a -H --delete --chmod=Fu+rw,Du=rwx /mnt/iso /tmp/iso rsync -a -H --delete --chmod=Fu+rw,Du=rwx /mnt/iso /tmp/iso
-</code>+~~~
  
 Cependant dans le cas d'un ISO CD/DVD nous préférerons : Cependant dans le cas d'un ISO CD/DVD nous préférerons :
-<code bash>+~~~bash
 fakeroot rsync -a -H --delete /mnt/iso /tmp/iso fakeroot rsync -a -H --delete /mnt/iso /tmp/iso
-</code> +~~~ 
  
 chown - exemple synchro dokuwiki  chown - exemple synchro dokuwiki 
-<code bash>+~~~bash
 rsync -axP --chown=999:999 --exclude="cache" --exclude="tmp" --exclude="attic" --delete webapp:/home/wiki/data/* /home/wiki/data/ rsync -axP --chown=999:999 --exclude="cache" --exclude="tmp" --exclude="attic" --delete webapp:/home/wiki/data/* /home/wiki/data/
-</code>+~~~
  
-=== Options SSH+### Options SSH
  
-<code bash>+~~~bash
 rsync -o StrictHostKeyChecking=no -o CheckHostIP=no rsync -o StrictHostKeyChecking=no -o CheckHostIP=no
 #rsync -e "ssh -o StrictHostKeyChecking=no -o CheckHostIP=no" #rsync -e "ssh -o StrictHostKeyChecking=no -o CheckHostIP=no"
-</code>+~~~
  
-=== Exclusion+### Exclusion
  
 ** Le chemin des fichiers à exclure est relatif au répertoire que l'on sauvegarde. **  ** Le chemin des fichiers à exclure est relatif au répertoire que l'on sauvegarde. ** 
  
-<code bash>+~~~bash
 # FAUX # FAUX
 rsync --archive --verbose --stats --info=progress2 --delete --delete-excluded --exclude="/home/jean/tmp/" /home/jean/ /media/backup/ rsync --archive --verbose --stats --info=progress2 --delete --delete-excluded --exclude="/home/jean/tmp/" /home/jean/ /media/backup/
Ligne 133: Ligne 159:
 # OK # OK
 rsync --archive --verbose --stats --info=progress2 --delete --delete-excluded -filter="- /home/jean/tmp/" /home/jean/ /media/backup/ rsync --archive --verbose --stats --info=progress2 --delete --delete-excluded -filter="- /home/jean/tmp/" /home/jean/ /media/backup/
-</code>+~~~
  
 **La racine "/" est relative au dossier racine qu'on sauvegarde** **La racine "/" est relative au dossier racine qu'on sauvegarde**
Ligne 141: Ligne 167:
  
 Exclure les fichiers cachés Exclure les fichiers cachés
-<code bash>+~~~bash
 rsync -ax --exclude=".*" --delete /source/ /dest/ rsync -ax --exclude=".*" --delete /source/ /dest/
-</code>+~~~
  
-=== Liste bande passante / ressources +### Liste bande passante / ressources 
  
 Liste bande passante / ressources Liste bande passante / ressources
 ''--bwlimit=KBps'' ''--bwlimit=KBps''
-<code bash>+~~~bash
 /usr/bin/ionice -c2 -n7 rsync -axvn --bwlimit=20480 /home/jean/ backup1:/data/bck1/home/jean/ /usr/bin/ionice -c2 -n7 rsync -axvn --bwlimit=20480 /home/jean/ backup1:/data/bck1/home/jean/
-</code>+ 
 +# systemd-run -p IOWeight=10 rsync -axvn --bwlimit=20480 /home/jean/ backup1:/data/bck1/home/jean/ 
 +~~~
  
 Voir aussi Voir aussi
  
-<code bash>+~~~bash
 renice +19 -p $$ >/dev/null 2>&1 renice +19 -p $$ >/dev/null 2>&1
 ionice -c3 -p $$ >/dev/null 2>&1 ionice -c3 -p $$ >/dev/null 2>&1
-</code>+~~~
  
-<code bash>+~~~bash
 ntop -A ntop -A
 sudo /etc/init.d/ntop start sudo /etc/init.d/ntop start
-</code>+~~~
  
 == Rsync en mode daemon == Rsync en mode daemon
Ligne 180: Ligne 208:
  
  
-=== Activation+### Activation
  
-<code bash /etc/default/rsync>+''/etc/default/rsync'' 
 +~~~bash
 RSYNC_ENABLE=true RSYNC_ENABLE=true
-</code>+~~~
  
-<code bash>+~~~bash
 systemctl enable --now rsync systemctl enable --now rsync
 systemctl status rsync systemctl status rsync
-</code>+~~~
  
-<code bash>+~~~bash
 rsync rsync://pub@localhost/ rsync rsync://pub@localhost/
-</code>+~~~
  
  
Ligne 200: Ligne 229:
 * https://docs.openstack.org/swift/latest/development_saio.html * https://docs.openstack.org/swift/latest/development_saio.html
  
-<code ini /etc/rsyncd.conf>+''/etc/rsyncd.conf'' 
 +~~~ini
 uid = swift uid = swift
 gid = swift gid = swift
Ligne 226: Ligne 256:
 read only = false read only = false
 lock file = /var/lock/object.lock lock file = /var/lock/object.lock
-</code>+~~~
  
  
Ligne 232: Ligne 262:
  
 Installeur Debian Calamares Installeur Debian Calamares
-<code ->+~~~
 Running ("rsync", "-aHAXr", "--filter=-x trusted.overlay.*", "--exclude", "/proc/", "--exclude", "/sys/", "--exclude", "/dev/", "--exclude", "/run/", "--exclude", "/run/udev/", "--exclude", "/sys/firmware/efi/efivars/", "--progress", "/tmp/tmpqf5n2jx1/filesystem/", "/tmp/calamares-root-z6v29hnx") Running ("rsync", "-aHAXr", "--filter=-x trusted.overlay.*", "--exclude", "/proc/", "--exclude", "/sys/", "--exclude", "/dev/", "--exclude", "/run/", "--exclude", "/run/udev/", "--exclude", "/sys/firmware/efi/efivars/", "--progress", "/tmp/tmpqf5n2jx1/filesystem/", "/tmp/calamares-root-z6v29hnx")
-</code>+~~~
  
 == Pb == Pb
  
  
-=== Pb de taille+### Pb de taille
  
 Source : https://sanitarium.net/rsyncfaq/#differentsizes Source : https://sanitarium.net/rsyncfaq/#differentsizes
Ligne 246: Ligne 276:
  
 Pour vérifier que la copie fait bien la même taille Pour vérifier que la copie fait bien la même taille
-<code bash>+~~~bash
 #echo `find . -type f -ls | awk '{print $7 "+"}'`0 | bc #echo `find . -type f -ls | awk '{print $7 "+"}'`0 | bc
 echo `find /media/Disk1/ -type f -ls | awk '{print $7 "+"}'`0 | bc echo `find /media/Disk1/ -type f -ls | awk '{print $7 "+"}'`0 | bc
 echo `find /media/Disk2/ -type f -ls | awk '{print $7 "+"}'`0 | bc echo `find /media/Disk2/ -type f -ls | awk '{print $7 "+"}'`0 | bc
-</code>+~~~
  
-<code bash>+~~~bash
 rsync --delete -v -axHSc /media/Disk1/ /media/Disk2/ rsync --delete -v -axHSc /media/Disk1/ /media/Disk2/
-</code>+~~~
  
 | **Option**            | **Description**                             | | **Option**            | **Description**                             |
Ligne 262: Ligne 292:
  
  
-=== Pb : failed to set times on / No such file or directory+### Pb : failed to set times on / No such file or directory
  
-<code bash>+~~~bash
 sshfs SRV_DEST:/var/www/ /home/jean/mnt/SRV_DEST sshfs SRV_DEST:/var/www/ /home/jean/mnt/SRV_DEST
 rsync -ax --bwlimit=20480 SRV_SRC01:/var/www/www.acme.fr/ /home/jean/mnt/SRV_DEST/www.acme.fr/ rsync -ax --bwlimit=20480 SRV_SRC01:/var/www/www.acme.fr/ /home/jean/mnt/SRV_DEST/www.acme.fr/
-</code>+~~~
  
-<code ->+~~~
 rsync: failed to set times on "/home/jean/mnt/SRV_DEST/www.acme.fr/htdocs/current": No such file or directory (2) rsync: failed to set times on "/home/jean/mnt/SRV_DEST/www.acme.fr/htdocs/current": No such file or directory (2)
-</code>+~~~
  
 Solution : Tester avec l'option ''-J'' ou ''-O'' Solution : Tester avec l'option ''-J'' ou ''-O''
-<code bash>+~~~bash
 rsync -ax -J --bwlimit=20480 SRV_SRC01:/var/www/www.acme.fr/ /home/jean/mnt/SRV_DEST/www.acme.fr/ rsync -ax -J --bwlimit=20480 SRV_SRC01:/var/www/www.acme.fr/ /home/jean/mnt/SRV_DEST/www.acme.fr/
-</code>+~~~
  
  
-=== Pb clef USB sync+### Pb clef USB sync
  
 Sur clef USB le système peut bufferiser beaucoup trop. Sur clef USB le système peut bufferiser beaucoup trop.
tech/notes_rsync.1742825205.txt.gz · Dernière modification : de 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki