Comment utiliser rsync depuis un PC Windows vers un serveur Linux distant?

23

Comment utiliser la rsynccommande d'une machine Windows 7 locale vers un serveur Linux distant?

Quel logiciel est nécessaire sur la machine Windows 7 pour utiliser rsync?

Le serveur Linux distant utilise l'AMI Linux d'Amazon. La commande rsyncest déjà activée sur la machine et je peux modifier tout accès nécessaire à la machine.

C'est dans le but de configurer un serveur Web sur la machine distante et de le modifier sur ma machine locale et de garder les fichiers synchronisés.

Je ne veux pas un accès bidirectionnel entre les machines, je vais seulement éditer des fichiers sur ma machine locale et les garder à jour sur la machine distante.

MISE À JOUR:

J'ai installé cygwin sur ma machine Windows 7 et installé le package rsync . Quelqu'un peut-il fournir les étapes pour configurer la connexion de la machine Windows 7 au serveur Linux à distance?

Supposons que je souhaite avoir un dossier appelé C:\wwwsur ma machine Windows et le maintenir à jour \var\wwwsur ma machine distante, comment faire? Ce n'est pas une sauvegarde en soi, il met à jour les fichiers que je modifie avec mon ordinateur local.

paradd0x
la source

Réponses:

9

J'ai MinGW (également connu sous le nom de «Git Bash» ) sur Windows 7, et un fichier de commandes qui exécute rsync pour sauvegarder des fichiers sur un disque externe sur un ordinateur Linux distant. Voici le fichier batch ( my_rsync_file.bat)

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
cd ../
REM starting rsync...
bash -c "rsync -avzh -P --stats --timeout=60  --exclude Downloads . '[email protected]:/media/my_remote_linux_computer/LaCie/My\ Documents'"

Voici quelques explications ligne par ligne:

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)

Cela émet juste un message pour me rappeler ce qui se passe.

cd ../

Cela change le répertoire d'un niveau au-dessus de l'endroit où se trouve le fichier de commandes (en «Mes documents»). Le fichier de commandes se trouve dans un lecteur externe sur mon ordinateur Windows. Je veux synchroniser tout le dossier «Mes documents» sur ce lecteur externe avec un dossier du même nom sur un lecteur externe sur mon ordinateur Linux distant.

REM starting rsync...

Imprime simplement un autre message.

bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . [email protected]:/media/my_remote_linux_computer/LaCie/My\\ Documents"

bash: démarre MinGW qui a une bibliothèque rsync intégrée
-c: pas sûr de ce que cela fait
rsync: bibliothèque pour synchroniser les fichiers, est livré avec MinGW
-avzh: a-Archive, v-Verbose, z-Compress, h-Human-readable, ce sont les options courantes (plus: http://linux.die.net/man/1/rsync )
-P: affichez la progression des gros fichiers donc je sais si elle est figée ou non
--stats: affichez le résumé du nombre de fichiers et d'octets transférés à la fin
--timeout=60: tuez-le après 60 secondes s'il est bloqué,
--excludeomettez les fichiers / répertoires de la synchronisation, dans ce cas, j'exclus un répertoire appelé 'Téléchargements'
.: indique de synchroniser tout le contenu de 'Mes documents' (attendez-vous à ce que la chose spécifiée soit exclue dans la ligne ci-dessus)
my_remote_linux_computer: nom de mon ordinateur Linux distant (pas son vrai nom;)
@128.95.155.200: les adresses IP de mon ordinateur Linux distant, à partir de https://www.whatismyip.com/ (pas mon adresse IP réelle :)
/media/my_remote_linux_computer/LaCie/My\\ Documents: le chemin d'accès au répertoire sur mon ordinateur Linux distant sur lequel je souhaite recevoir les fichiers. C'est un disque externe.

Notez que l'espace dans "Mes documents" est échappé avec deux barres obliques inverses, et le nom complet et le répertoire de la destination distante sont entourés de guillemets doubles.

Lorsque je commence à double-cliquer sur le fichier bat, on me demande le mot de passe de mon ordinateur Linux distant. Une fois terminé, j'obtiens une sortie récapitulative et je suis invité à appuyer sur n'importe quelle touche pour fermer.

Ben
la source
Description du -cparamètre de bash man: Si l'option -c est présente, les commandes sont lues à partir de la chaîne. S'il y a des arguments après la chaîne, ils sont affectés aux paramètres positionnels, en commençant par $ 0.
Lukasz Stelmach
6

Si vous voulez une application gratuite qui regroupe cygwin et rsync avec une belle interface graphique, jetez un œil à Deltacopy :

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

  • Sauvegarde incrémentielle - Copie une partie du fichier réellement modifié
  • Planificateur de tâches - Les profils dans DeltaCopy peuvent s'exécuter en fonction d'un calendrier
  • Notification par e-mail - Les administrateurs peuvent recevoir une confirmation par e-mail en cas de transfert réussi ou échoué
  • Restauration en un clic - Les fichiers sauvegardés peuvent être facilement restaurés.
  • Environnement convivial pour Windows - Pas besoin de modifier manuellement les fichiers de configuration ou de jouer avec les options de ligne de commande.
Linker3000
la source
6

Une option pourrait être d'installer rsync en installant cygwin sur Windows. Il y a probablement une approche beaucoup plus directe pour cela.

Une autre option pourrait être de rsync du côté linux - vous pouvez configurer un moyen pour la machine distante d'accéder aux fichiers locaux, puis rsync de là-bas (jetez un œil au montage des partages smb / cifs).

Je soupçonne qu'il existe encore de meilleures options, mais peut-être que cela aidera un peu.


Mise à jour pour 2017

Avec le sous-système Linux disponible dans Windows 10, vous pouvez probablement installer un serveur ssh & rsync très facilement avec cela et utiliser rsync avec Windows à travers cela.

James T Snell
la source
5

MinGW a un rsync intégré qui semble fonctionner assez bien. Il a même un mode démon - même si je ne l'ai pas testé. Je recommande MinGW plutôt que cygwin pour plusieurs raisons: MinGW est une installation plus petite et elle est native de Windows.

AC Verbeck
la source