파이프가 끊어져 SSH를 통한 RSYNC가 주기적으로 실패함

파이프가 끊어져 SSH를 통한 RSYNC가 주기적으로 실패함

커밋 후 스크립트는 rsyncSVN 시스템의 파일을 Ubuntu 10.04.3, 3.1.1을 실행하는 프로덕션 웹 서버로 업데이트하는 명령을 호출합니다 rsync. rsync이 문제는 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 연결 솔루션만큼 좋지는 않은 것 같습니다.

관련 정보