Rsync
De BlaxWiki
Vérifications
Voici une liste de points à vérifier lors de la mise en place d'un serveur rsync
- Le nom du serveur est le nom exacte de la machine cliente. Le même nom devra être répertorié sur rsync1b.agarik.com dans /nas/synchro/, /etc/hosts et /etc/rsyncd.conf. La moindre
erreur empêchera la synchronisation.
- Chaque serveur est synchronise en switche et non en routé dans la mesure du possible (une ip sur le serveur rsync dans le meme subnet / vlan que le serveur à backuper)
- Chaque serveur de plus de 10k fichiers sera synchronise localement sur disque / chaque serveur de moins de 10k fichiers sera sycnhronise sur un montage nfs (isilon ou netapp)
- Chaque script devra etre verifie pour s’assurer que la synchro correspond au plan de backup
- Chaque script devra etre verifie pour s’assurer qu’il n’y a pas de dossier source erronee (ne pas mettre de / à la fin du dossier source)
- Si des dossiers ont le même nom (exemple /etc & /opt/applis/apache/etc); il faut bien préciser un repertoire de destination différent :
- RSYNC_PASSWORD=xxxxx rsync -vrpogtlH --delete /etc agarik@192.168.26.18::agarik.com 2>/opt/agarik/rapport_rsync
- RSYNC_PASSWORD=xxxxx rsync -vrpogtlH --delete /opt/applis/apache/etc agarik@192.168.26.18::agarik.com/apache/etc 2>>/opt/agarik/rapport_rsync
- Chaque script devra etre verifie pour ajouter –delete, idealement, on pourrait avoir 2 comportement pour les synchros sur disques, le premier (6 jours sur 7) faire une synchro sans
effacement, le second (1 jour par semaine), effectuerais une synchro avec effacement. Sur isilon, les snapshots permetteront d’avoir une semaine de retention.
- Les synchros seront repartis dans la journee en fonction de l’impact sur les serveurs. Pour les serveurs agarik, la synchro pourra etre fait en journee meme avec un impact leger.
- Il est possible d'exclure des sous-répertoires. Si par exemple on veut exclure le sous-répertoire /www1/etc/ contenu dans /www/, on écrira alors :
RSYNC_PASSWORD=5rtg2r5 /usr/bin/rsync -vrpogtlH --delete --exclude=www1/etc /www agarik@192.168.254.25::www.agarik.com
Rsync configuraiton
Exemple de configuration rsyncd.conf au niveau serveur
log file=/home/rsyncd.log
munge symlinks = no # evite d avoir des liens symboliques cassés
[agadev2.agarik.com] # Nom de la machine entre crochets, à modifier en fonction de la machine.
path=/nas/synchro/Agarik/agadev2.agarik.com/ # Répertoire de sauvegarde, à modifier en fonction de la machine.
lock file=/home/rsync/rsyncd.lock
read only=false
use chroot=no
auth users=agadev # Identifiant RSync du client, à modifier en fonction du client.
secrets file=/home/rsync/rsync/rsyncd.secrets
strict modes=true
uid=root
gid=wheel
list=false
hosts allow=192.168.0.160 # Adresse IP de la machine à sauvegarder, à modifier en fonction de la machine.
Exemple de script rsync au niveau client
#!/bin/sh RSYNC_PASSWORD=xxxxxx /opt/applis/rsync/bin/rsync -vrpogtlH --delete /etc agarik@10.253.6.13::pxe1-ins.agarik.com 2>/opt/agarik/rapport2_rsync RSYNC_PASSWORD=xxxxxx /opt/applis/rsync/bin/rsync -vrpogtlH --delete /home/sites/default agarik@10.253.6.13::pxe1-ins.agarik.com 2>>/opt/agarik/rapport2_rsync RSYNC_PASSWORD=xxxxxx /opt/applis/rsync/bin/rsync -vrpogtlH --delete /opt/agarik/scripts agarik@10.253.6.13::pxe1-ins.agarik.com 2>>/opt/agarik/rapport2_rsync sed -i '/vanished/d' /opt/agarik/rapport2_rsync if [ -s /opt/agarik/rapport2_rsync ]; then echo "From: <backup@agarik.com> To: backup@agarik.com Subject: Rapport Rsync `uname -n vers rsync1.lc` `cat /opt/agarik/rapport2_rsync`" | sendmail -fbackup@agarik.com backup@agarik.com fi exit 0
Copie rapide
Pour faire une copie de fichier rapide entre 2 machines via ssh A faire sur la machine qui va envoyer les données à copier. On va donc copier tout ce qui se trouve à l endroit ou on fait le tar vers le serveur 212.43.194.2 dans le repertoire /home/benbis/test : tar cvzf - . | ssh benj@212.43.194.2 "tar xvzf - -C /home/benbis/test" (ou tar -czvf - /mon_dossier_1 /dossier/dossier_2 | ssh user@votre-serveur.com ....) ou alors pour un dd : dd if=/dev/volimages/firewall_image_root | ssh root@192.168.10.12 "dd of=/dev/volimages/firewall_image_root"
Copie via Rsync
rsync -av -e "ssh -p 44230" --delete-before --exclude=.ssh/ /home/user/backup/ user@host_destination:/var/backup/user --stats --bwlimit=25
Cette commande permet d'exécuter la commande “rsync” via du ssh sur un port non standard en limitant le débit de transmission.
options :
a : permet d'activer la récursivité
v : permet à la commande d'être verbeuse
e : permet de disposer d'option ssh. Dans notre cas nous spécifions un port particulier (44230)
D : permet de copier les fichiers speciaux tel /dev/null
exclude : permet d'exclure des répertoires du backup en partant du répertoire source du backup. Dans la commande, le fait de spécifier ”.ssh/” exclut ”/home/user/backup/.ssh/”.
stats : permet d'afficher un rapport de fin de backup
bwlimit : permet de limiter le débit. La valeur par défaut est en Kb [kilobytes = kilo octets]