Domanda

Ottengo il seguente errore quando provo a eseguire l'ultima versione Cygwin di rsync in Windows XP SP2. L'errore si verifica sia per i tentativi di sincronizzazione locale (ovvero: sorgente e destinazione solo sul disco rigido locale) sia per la sincronizzazione remota (usando " -e ssh " dal pacchetto openssh). Qualche consiglio su come risolverlo / aggirare il problema?

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]
È stato utile?

Soluzione

Non proprio una risposta alla tua domanda, ma ho trovato Delta Copy essere un'opzione molto migliore rispetto a scherzare con Cygwin. Si collega anche ai demoni rsync regolari.

Altri suggerimenti

Probabilmente hai qualcosa che blocca rsync. Nel mio caso è l'antivirus NOD32. Puoi verificarlo eseguendo rsync in 'gdb' come segue:

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

annota " esegui " comando dopo l'avvio di gdb. Vedrai alcuni output come questo:

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] 

Quindi dovrai aggiungere rsync al tuo elenco di esclusione nello scanner antivirus (NOD32):

c: \ cygwin \ bin \ rsync.exe

Essere consapevoli del fatto che un bug di implementazione pipe di lunga data in Cygwin causa il blocco di rsync se viene utilizzato tramite una connessione SSH.

A partire da Cygwin v. 1.7 sembra che l'unico modo affidabile per trasferire molti dati con rsync sia collegarsi a un demone rsync usando il protocollo rsync. DeltaCopy è solo un bel wrapper per questo metodo.

Apparentemente alcuni utenti hanno avuto successo oltre a SSH spingendo i dati da Windows a Unix invece di estrarre da Windows sul lato Unix. Tuttavia, nella nostra esperienza non è affidabile.

Google per cygwin, rsync, ssh e pipe / hang / stall e troverai maggiori informazioni su questo problema.

Ho riscontrato che si tratta di un errore Winsock. Ho confermato che il problema inizia con l'installazione di ATT Communcations Manager (versione 6.12.0046.0) per Sierra Wireless Aircard (875U). Disinstallare Communications Manager e l'errore rsync scompare.

Dopo aver seguito il consiglio di @akaihola ho trovato questo post sul blog con la soluzione allo stesso problema. Pubblico la soluzione qui, ma i crediti vanno a 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

Naturalmente hai bisogno di Cygwin con rsync.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top