Synchroniser Linux Windows avec rsync

Synchroniser Linux Windows avec rsync

Astuce de rsync qui est plus que pratique pour synchroniser des dossiers.

Je vais vous décrire ci-dessous deux application, une qui me sert à récupérer mes sauvegardes sur mon serveur en ligne et une autre qui me permet de synchroniser mon dossier de documents personnels entre mon poste fixe sous Linux et mon Laptop qui est lui sous Windows.

Rsync est sous licence GNU GPL. Il permet de synchroniser des dossiers depuis un dossier source vers un dossier cible.

Vous le trouverez sous Windows, Linux ou Mac OS.

rsync d’un dossier distant via SSH :

# rsync -cpogvczrl  "-e ssh -p 9022" /home/user/.ssh/id_rsa » –progress "user@serveur:/backup/" /home/user/backup/ >> /home/user/log_rsync.txt 2>&1
# find  /home/user/backup/ -mtime +7 -name ‘*.tgz’ -delete

Ici je conserve les données pendant 7 jours (man page find).

Cela permet d’avoir une récupération automatique de mes sauvegardes sans avoir à me soucier de nettoyer moi même le dossier les recevant.

Cette méthode est pas mal mais elle a ses limites. En effet dans le cas où on veut sauvegarder un disque complet ou bien un dossier où on ajoute ou supprime des fichiers, on souhaiterait se simplifier la vie.

Synchronisation d’un dossier Windows (Samba) avec un dossier sous Linux

Ceci est ma méthode, je suis sûr qu’il en existe d’autres, mais pour le moment elle me suffit. Dans un premier temps il vous faut créer un partage de fichier sur votre ordinateur Windows. Nous pourrons ainsi y accéder avec Samba. Le plus simple est de le monter dans un dossier local avec cifs (urpmi cifs sous Mandriva ou apt-get install smbfs sous Debian yum install samba).

# sudo mount -t cifs //192.168.0.3/e /mnt/partage-win -o uid=user,gid=user,file_mode=0640,dir_mode=0750,iocharset=utf8,credentials=/home/user/.smbserver

Il est obligatoire de monter le dossier avec root, mais nous pouvons stocker l’utilisateur et le mot de passe pour le partage samba dans un fichier comme ci-dessus. Le fichier en question contient uniquement ces éléments :

username=User

password=Password

L’autre solution peut-être de mettre l’utilisateur et le mot de passe directement dans la ligne de commande comme illustré ci-dessous :

# sudo mount -t cifs //10.0.0.13/e /mnt/partage-win -o uid=user,gid=user,file_mode=0640,dir_mode=0750,iocharset=utf8,username=User,password=Password

Une fois le partage monté, vous y avez accès depuis votre machine sous Linux et vous pouvez alors y copier vos fichiers avec « cp », en déplacer avec « mv » ou toute autre action souhaitée. Dans notre cas il ne nous reste qu’à synchroniser nos deux dossiers :

# rsync -av –delete –progress /media/MonDisque/MonDossier/ /mnt/partage-win/MonDossier/

Nous pouvons voir ici l’option ” –delete ” qui va supprimer les fichiers qui n’existent plus dans le dossier source. Cela permet d’éviter de devoir nettoyer manuellement le dossier de destination . Dans le cadre d’une sauvegarde automatique.

Je me sers de la même commande pour synchroniser un disque de 300 Go contenant pleins de données, avec un disque USB de la même capacité. J’ai ainsi régulièrement une sauvegarde à jour de mon disque dur personnel et si il lâche comme c’est déjà arrivé, j’aurai bien moins de pertes. Nous pourrions donc coupler cette méthode en tâche planifiée (cron) vers un NAS. Un NAS est un périphérique permettant d’avoir un ou deux disques en réseau. Souvent on trouve ce boitier avec deux disques durs en RAID 1 (miroir), c’est à dire se répliquant l’un sur l’autre, et branché sur le réseau, accessible en FTP ou en partage Samba. Bon je n’en suis pas encore là, mais j’y pense 😉 J’espère que cet article vous sera utile et vous aidera pour vos synchronisations ou vos sauvegardes. n’hésitez pas à partager vos trucs et astuces via les commentaires.

Et avant d’oublier ou d’éteindre la machine sous Windows (si vous l’éteignez), n’oubliez pas de démonter le dossier :

# sudo umount /mnt/partage-win

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.

* Copy This Password *

* Type Or Paste Password Here *