Rsync / Ssh entre Windows et Linux
J’ai passé une bonne heure, hier soir, à configurer la synchronisation du contenu d’un répertoire entre une machine Windows et un serveur Linux, là où il m’aurait fallu 5 minutes, à peine, entre deux systèmes Linux.
Problématique
Comme j’ai déjà eu l’occasion de vous en parler, j’utilise l’agrégateur RSS Newsfox sous Firefox pour l’organisation de mon système de veille sur Internet. 260 flux au total, à ce jour. Stockées sur mon ordinateur de bureau, je ne peux pas accéder à mes données lors de mes déplacements. J’ai donc décidé de les copier sur un serveur auto-hébergé et de les synchroniser ensuite avec mon ordinateur portable.
Préambule
Dans mon exemple, le programme Rsync – et Ssh – sous Windows s’exécute à partir du répertoire F:\cwRsync. Ma clé SSH, générée avec ssh-keygen, se trouve stockée dans F:\dedibox. Les fichiers download.cmd et upload.cmd ont été sauvegardés dans le répertoire F:\cwRsync. Les contenus des répertoires à synchroniser, dans lesquels se trouvent les données de Newsfox, sont respectivement :
- D:\firefox\newsfox, sur Windows
- /home/firefox/newsfox, sur Linux
Génération de la paire de clés
Elle s’effectue avec ssh-keygen.
shh-keygen -b 2048 -t rsa
J’ai renommé la clé privée id_rsa en rsync.ppk. Quant à la clé publique id_rsa.pub, j’en ai ajoutée le contenu dans le fichier /root/.ssh/authorized_keys du serveur Linux.
Le upload
Il a tout d’abord fallu envoyer les fichiers de mon ordinateur de bureau Windows vers le serveur Linux à partir du fichier upload.cmd :
@echo off SETLOCAL set PATH=%PATH%;f:\cwRsync rsync -e "ssh -i /cygdrive/f/dedibox/rsync.ppk -p 59804" --delete -t -r -z --compress-level=9 /cygdrive/d/firefox/newsfox root@195.154.72.5:/home/firefox ENDLOCAL exit
Le download
J’ai ensuite récupéré les fichiers de Newsfox à partir de la machine Linux vers mon ordinateur portable à l’aide du fichier download.cmd :
@echo off SETLOCAL set PATH=%PATH%;f:\cwRsync rsync -e "ssh -i /cygdrive/f/dedibox/rsync.ppk -p 59804" --delete -r -t -z --compress-level=9 root@195.154.72.5:/home/firefox/newsfox /cygdrive/d/firefox ENDLOCAL exit
Les commutateurs utilisés
Vous pouvez consulter tous les commutateurs utilisables au niveau de la commande Rsync en tapant à partir de la ligne de commande Windows, rsync –help|more.
-e | Exécute la commande Ssh |
–delete | Efface les données de la destination qui n’existent pas au niveau de la source |
-r | Copie les données récursivement |
-t | Conserve les dates d’origine des fichiers |
-z | Compresse les fichiers |
–compress-level=9 | Définit le niveau de compression |
Linux / Formateur Linux, Linux, Rsync, SSH, Windows 10