パイプが切断され、SSHを介したRSYNCが定期的に失敗する

パイプが切断され、SSHを介したRSYNCが定期的に失敗する

コミット後、スクリプトはrsyncSVNシステム上のファイルをUbuntu 10.04.3、3.1.1を実行している本番Webサーバーに更新するコマンドを呼び出しますrsyncrsyncこの問題は3.0.7でも発生しました。 3.1.1へのアップグレードはトラブルシューティングのステップです。

ファイルの更新が必要かどうかにかかわらず、定期的に以下を受け取ります。

Write Failed: Broken pipe
rsync: connection unexpectedly closed (xxxx bytes sent so far) [sender]

パイプラインが中断されると、非常に詳細な出力が99%の場合、次のように終了します。

send_files(2, /some/path/to/.htaccess)
send_files(3, /some/path/to/file1.zip)
send_files(4, /some/path/to/file2.zip)
send_files(5, /some/path/to/file3.zip)
send_files(6, /some/path/to/file4.zip)
send_files(7, /some/path/to/index.php)
recv_files(22) starting
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(255)

SSHそしてSCP接続は維持され、問題なく両方のサーバーでうまく機能します。rsyncこのコマンドを10回連続実行すると、約50%程度は正常に実行されます。これらの症状は、すべてのディレクトリからファイルを転送するときに発生するものであり、一種のファイル形式や権限の問題ではないと考えられます。

より多くの出力:

send_files(27, /a/different/path/verdana.ttf)
recv_files(50) starting
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(255)

send_files(25, /yet/another/path/unsubscribe.htm)
recv_files(162) starting
[sender] _exit_cleanup(code=12, file=io.c, line=226): about to call exit(255)

以下はコマンドの例です。

rsync -azv --delete --exclude=.svn /svn/path -e ssh user@server:/remote/path

答え1

失敗するたびにTCP RSTパケットが表示されると言われました。これは、次の資料に記載されている可能性のあるファイアウォールの接続解除の問題と同様に聞こえます。この問題は、中断されたSSH接続を再利用することで解決することもできます。 rsync接続が約1時間終了しました。

--timeout=[timeout value] オプションもありますが、hang ssh 接続ソリューションほど良くないようです。

関連情報