質問

Windows XP SP2 で rsync の最新 Cygwin バージョンを実行しようとすると、次のエラーが発生します。このエラーは、両方のローカル同期を試行した場合に発生します (つまり、次のとおりです)。ソースと宛先はローカル ハードディスク上のみ)、およびリモート同期 (openssh パッケージの「-e ssh」を使用)。それを修正/回避する方法についてアドバイスはありますか?

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]
役に立ちましたか?

解決

あなたの質問に対する答えではありませんが、見つけました デルタコピー Cygwin をいじるよりもはるかに優れたオプションです。通常の rsync デーモンにも接続します。

他のヒント

おそらく rsync をブロックしているものがあると思われます。私の場合はNOD32アンチウイルスです。これは、次のように「gdb」で rsync を実行することで確認できます。

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

gdb が起動した後の「run」コマンドに注意してください。次のような出力が表示されます。

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] 

したがって、ウイルス スキャナ (NOD32) の除外リストに rsync を追加する必要があります。

c:\cygwin\bin sync.exe

Cygwin の長年にわたるパイプ実装のバグにより、SSH 接続経由で rsync を使用すると rsync がハングすることに注意してください。

Cygwin 対1.7 では、rsync で大量のデータを転送する唯一の信頼できる方法は、rsync プロトコルを使用して rsync デーモンに接続することのようです。DeltaCopy は、このメソッドの単なるラッパーです。

一部のユーザーは、Unix 側で Windows からデータをプルするのではなく、SSH で Windows から Unix にデータをプッシュすることに成功しているようです。しかし、私たちの経験では、それも信頼できません。

cygwin、rsync、ssh、pipe/hang/stall について Google で検索すると、この問題に関する詳細情報が見つかります。

これは winsock のエラーであることがわかりました。問題は、Sierra Wireless Aircard (875U) 用の ATT Communations Manager (バージョン 6.12.0046.0) のインストールから始まることを確認しました。Communications Manager をアンインストールすると、rsync エラーは解消されます。

@akaihola さんのアドバイスに従ってみたところ、 これ 同じ問題の解決策を記載したブログ投稿。解決策をここに投稿しますが、クレジットは次のとおりです。 マーク・アブラモウィッツ

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

もちろん、rsync を備えた Cygwin が必要です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top