Comment uploader votre site web avec rsync sous Windows

Vous trouvez probablement que télécharger son site par FTP c'est très compliqué, très lent, bref c'est un calvaire.

Et vous avez raison ! A vrai dire, un informaticien ne ferait pas comme ça, FTP c'est bien trop compliqué !

Il y a une autre solution : rsync.

Au lieu de tout télécharger à chaque fois, ou de fouiller à la recherche des nouveautés qu'il faut télécharger, rsync va vérifier les différences entre votre site local et votre site distant, et n'uploader que les nouveautés ! Vous économisez donc du temps, et vous évitez de squatter votre connexion ADSL pendant le temps de l'upload ! Cerise sur le gâteau : au passage, les données sont cryptées par OpenSSH, et compressées en zip pendant le transfert, pour être décryptées et décompressées automatiquement à l'arrivée !

Le seul "inconvénient", mais à vrai dire c'est un avantage, c'est qu'il est en ligne de commande. Mais comme la ligne de commande est toujours la même, ce n'est pas vraiment un problème, par ailleurs et c'est là l'avantage, on peut plus facilement l'automatiser.

Avertissement : attention ceci fonctionne chez nous, mais ne fonctionne en général pas sur un hébergement mutualisé ordinaire.

Etape 1 : Téléchargez et ouvrez le "setup.exe" de Cygwin, installez-le, lorsque vous arrivez à la sélection des paquetages comme ci-dessous, cherchez "openssh", et cochez-le (il vous faudra d'abord ouvrir la section "Net" en cliquant sur le + á gauche, puis cliquez sur les flèches enroulées pour obtenir une croix á la place. Ne cliquez pas sur suivant pour l'instant ! suite...


Etape 2 :Faites maintenant une rechercher pour "rsync", et cochez-le également, toujours dans la section "Net", puis cliquez sur suivant.

suite...


Etape 3 :Finissez l'installation de Cygwin (suivant suivant etc...), puis lancez "Cygwin Terminal" dans le menu des programmes, section "Cygwin".

suite...


Etape 4 :On peut maintenant faire notre synchronisation avec la commande suivante (répondez "yes" à la question que vous pose rsync, il ne la posera plus ensuite) :

suite...


Etape 5 :Après avoir rajouté une image dans le dossier Images, je relance la même commande, et on voit bien que seule cette nouvelle image est téléchargée !

suite...


Complément d'information :

Tout d'abord, une information, ici je n'ai pas utilisé l'option "--delete" de rsync, qui permet de supprimer sur la machine distante les fichiers supprimés sur la machine locale, pour ne pas vous faire faire de bêtises. Vous pouvez éventuellement la rajouter, mais dans ce cas là rajoutez également la première fois l'option "--dry-run", qui va juste montrer les actions qui auraient été accomplies, mais sans les faire réellement. La ligne complète serait donc "rsync -auxvz --delete --dry-run ...". Ensuite, si ça vous convient, enlevez "--dry-run".

Autre chose : nous avons montré ici l'upload de votre site, mais à vrai dire ça fonctionne bien sûr dans les deux sens. Il suffit d'échanger la position des chemins locaux et distants dans la ligne de commande ! Le premier chemin est toujours l'origine, le second est toujours la destination.

Voici donc la ligne complète pour un download (je vous laisse enlever l'option dry-run à vos risques et périls) :

rsync -auxvz --dry-run --delete monsite@ssh.lixium.fr:www/ /cygdrive/c/Documents\ and\ Settings/toto/Mes\ documents/Mon\ site/

Et voici la ligne complète pour l'upload (idem, je vous laisse enlever l'option dry-run à vos risques et périls) :

rsync -auxvz --dry-run --delete /cygdrive/c/Documents\ and\ Settings/toto/Mes\ documents/Mon\ site/ monsite@ssh.lixium.fr:www/

© Copyright Lixium SARL 2013