Rsync no Windows - operação de soquete sobre a não-socket
Pergunta
Eu recebo o seguinte erro ao tentar executar a última versão Cygwin do rsync no Windows XP SP2. O erro ocorre se existem tentativas de ambas as sincronizações locais (isto é: a origem eo destino no disco rígido local apenas) e sincroniza remotos (usando o "ssh -e" do pacote openssh). Qualquer conselhos sobre como corrigir / contornar isso?
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]
Solução
Não é realmente uma resposta à sua pergunta, mas eu encontrei Delta Copiar a ser uma opção muito melhor do que andar com Cygwin. Ele se conecta ao rsync regulares também.
Outras dicas
Você provavelmente tem algo bloqueando rsync. No meu caso é NOD32 Antivirus. Você pode verificar isso executando rsync em 'gdb' da seguinte forma:
$ gdb --args /usr/bin/rsync -a somedir/ anotherdir
GNU gdb 6.8.0.20080328-cvs (cygwin-special)
.....
(no debugging symbols found)
(gdb) run
Observe o comando "run" depois gdb foi iniciada. Você vai ver alguns saída como esta:
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]
Assim você terá que adicionar rsync à sua lista de exclusão no que scanner de vírus (NOD32):
c: \ cygwin \ bin \ rsync.exe
Esteja ciente de que uma longa tubulação implementação bug no Cygwin faz com que o rsync para travar se ele é usado através de uma conexão SSH.
A partir de Cygwin v. 1.7, parece que a única maneira confiável para lotes de transferência de dados com rsync é para ligar a um rsync daemon usando o protocolo rsync. DeltaCopy é apenas um invólucro muito em torno deste método.
Alguns usuários aparentemente tiveram sucesso em cima de SSH empurrando dados do Windows para o Unix em vez de puxar a partir do Windows no lado do Unix. Em nossa experiência que é confiável também, apesar de tudo.
O Google para cygwin, rsync, ssh e tubo / asa / tenda e você vai encontrar mais informações sobre este problema.
Eu descobri que este seja um erro winsock. I confirmou o problema começa com a instalação da ATT Communcations Manager (versão 6.12.0046.0) para o Sierra Wireless Aircard (875U). Desinstalar o Gerente de Comunicações eo erro rsync vai embora.
Depois de seguir @akaihola 's conselho que eu encontrei este post com a solução para o mesmo problema. Eu postar a solução aqui, mas os créditos vão para 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
Claro que você precisa Cygwin com rsync.