Synchronisation Rsync
Très pratique quand on change de PC par exemple et que l’on veux copier sa centaine de gigs du vieux PV au nouveau.
Au travers d’une connexion directe RJ45 :
rsync -az --size-only --delete /home/kevin/source/* kevin@server.example.com:/home/kevin/destination/-aarchive, conserve tout les attribut des fichiers en l’état (date, owner, …)-zactive la compression--size-onlyne teste que la taille du fichier pour savoir s’il doit être mis à jour. C’est plus rapide que le Hash.--deletesupprime de la destination les fichiers qui l’ont été de la source
Autres options intéressantes
Section titled “Autres options intéressantes”--delay-updatesCopie tout les fichiers à transférer dans un répertoire temporaire et les transfère à la fin. Pratique sur des environnements de prod.--exclude-from=/root/sync_excludeliste des patterns de fichiers à exclure de la copie.
Autre point intéressant, il est facile de mettre cette ligne de commande dans un cron. Pour se dispenser du mot de passe on peut alors utiliser l’identification par clé de ssh.
Le mode boule de feu
Section titled “Le mode boule de feu”Pour des transferts ultra-rapide avec du sudo en face:
rsync --rsync-path="sudo rsync" -aHA --delete --info=progress2 --stats -e "ssh -T -o Compression=no" 10.0.0.4:/var/lib/mysql/ ./data--rsync-path="sudo rsync"on lance un sudo en face. Attention il faut un sudo sans mot de passe-aon préserve les attributs des fichier-Hon préserve les Hard Links-Aon préserve les ACLs-eon ajoute des options ssh--deleteon supprime les fichiers qui ont disparut sur la source--info=progress2on affiche seleument la progression pas tous les fichiers--statson affiche des stats
Pour le ssh
-Ton forward l’agent-o Compression=noon ne compresse pas
Config sudo
Section titled “Config sudo”Le problème est que si vous avez mis un mot de passe sur le sudo de la machine d’en face, ça complique les choses. Le plus simple est de supprimer le password pour la commande rsync seulement. Pour ça il suffit de mettre un fichier 99-rsync-nopwd dans /etc/sudoers.d avec la ligne :
obiwan ALL = (root) NOPASSWD: /usr/bin/rsync