Question

Le message d'erreur suivant s'affiche lorsque j'essaie d'exécuter la dernière version de rsync de Cygwin dans Windows XP SP2. L'erreur se produit lors de tentatives de synchronisation locale (c'est-à-dire: source et destination sur le disque dur local uniquement) et de synchronisation à distance (à l'aide de "-e ssh" du package openssh). Des conseils sur la façon de résoudre ce problème?

bash-3.2$ rsync -a dir1 dir2
rsync: Failed to dup/close: Socket operation on non-socket (108)
rsync error: error in IPC code (code 14) at /home/lapo/packaging/tmp/rsync-2.6.9/pipe.c(143) [receiver=2.6.9]
rsync: read error: Connection reset by peer (104)
rsync error: error in IPC code (code 14) at /home/lapo/packaging/tmp/rsync-2.6.9/io.c(604) [sender=2.6.9]
Était-ce utile?

La solution

Ce n'est pas vraiment une réponse à votre question, mais j'ai trouvé Copie Delta . être une bien meilleure option que de jouer avec Cygwin. Il se connecte également aux démons rsync habituels.

Autres conseils

Vous avez probablement quelque chose qui bloque rsync. Dans mon cas, c'est l'antivirus NOD32. Vous pouvez vérifier cela en exécutant rsync dans 'gdb' comme suit:

$ gdb --args /usr/bin/rsync -a somedir/ anotherdir
GNU gdb 6.8.0.20080328-cvs (cygwin-special)
.....
(no debugging symbols found)
(gdb) run 

notez le "run" " commande après le démarrage de gdb. Vous verrez des résultats comme celui-ci:

Starting program: /usr/bin/rsync -a somedir/ anotherdir
.....
(no debugging symbols found)
warning: NOD32 protected [MSAFD Tcpip [TCP/IP]]
warning: NOD32 protected [MSAFD Tcpip [UDP/IP]]
warning: NOD32 protected [MSAFD Tcpip [RAW/IP]]
warning: NOD32 protected [RSVP UDP Service Provider]
warning: NOD32 protected [RSVP TCP Service Provider]
(no debugging symbols found)
(no debugging symbols found)
---Type <return> to continue, or q <return> to quit---
(no debugging symbols found)
[New thread 1508.0x720]
[New thread 1508.0xeb0]
[New thread 1508.0x54c]
rsync: Failed to dup/close: Socket operation on non-socket
(108)
rsync error: error in IPC code (code 14) at
/home/lapo/packaging/rsync-3.0.4-1/src/rsync-3.0.4/pipe.c(147)
[receiver=3.0.4] 

Vous devrez donc ajouter rsync à votre liste d'exclusion dans cet antivirus (NOD32):

c: \ cygwin \ bin \ rsync.exe

Sachez qu'un bogue d'implémentation de pipe de longue date dans Cygwin provoque le blocage de rsync s'il est utilisé via une connexion SSH.

Depuis Cygwin v. 1.7, il semble que le seul moyen fiable de transférer beaucoup de données avec rsync est de se connecter à un démon rsync utilisant le protocole rsync. DeltaCopy est juste un joli wrapper autour de cette méthode.

Certains utilisateurs ont apparemment eu du succès avec SSH en poussant des données de Windows vers Unix au lieu de les extraire de Windows du côté Unix. Dans notre expérience, cependant, cela n’est pas fiable non plus.

Google pour cygwin, rsync, ssh et pipe / hang / stall et vous trouverez plus d'informations sur ce problème.

J'ai constaté qu'il s'agissait d'une erreur de winsock. J'ai confirmé que le problème commence par l'installation de ATT Communcations Manager (version 6.12.0046.0) pour Sierra Wireless Aircard (875U). Désinstallez le gestionnaire de communications et l’erreur rsync disparaît.

Après avoir suivi les conseils de @akaihola, j'ai trouvé ce billet de blog avec la solution au même problème. Je poste la solution ici, mais les crédits vont à Marc Abramowitz

cygrunsrv --install "rsyncd" --path /usr/bin/rsync --args "--daemon --no-detach" --desc "Starts a rsync daemon for accepting incoming rsync connections" --disp "Rsync Daemon" --type auto

Bien sûr, vous avez besoin de Cygwin avec rsync.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top