Ubuntu 18.10에서 rsync 및 ssh 시간 초과

Ubuntu 18.10에서 rsync 및 ssh 시간 초과

rsync 명령을 사용했을 때 다음과 같은 이상한 동작이 발생했습니다.

sudo rsync --timeout=300 --compress-level=9 -aHe "ssh -o ConnectTimeout=200 -o ServerAliveInterval=2 -ServerAliveCountMax=200" --progress --delete -z /media/Restic/* [email protected]:/DataVolume/BACKUPS/T4-Ubuntu-Restic

몇 분 후에 오류가 발생합니다.

rsync: [sender] write error: Broken pipe (32)

두 번째 터미널 창에서 또 다른 동시 SSH 세션을 테스트하여 게이트웨이에 대한 ping을 실행했으며 rsync가 중단된 경우에도 계속 실행되었으며 rsync가 중단되면 잠시 일시 중지되었습니다. 우분투는 1~2초 동안 연결을 끊었다가 다시 시작하는 것 같습니다.

rsync의 ssh가 명령에 설정한 시간 초과 200 또는 300을 기다리지 않고 깨진 파이프를 즉시 보고하는 이유가 궁금합니다.

답변1

--bwlimit=4096 옵션이 문제를 해결했습니다.

답변2

--timeout옵션은 리모콘이 rsync정지되거나 사용할 수 없게 되는 상황을 처리하는 데 사용됩니다. 그 뜻은"원격 연결을 포기하기 전에 이 시간만큼 기다리십시오.".

시나리오와 같이 연결이 강제로 닫히면 더 이상 연결이 없으며 rsync더 이상 피어와 통신할 수 없습니다. 이제 동료로부터 소식을 듣지 못한다는 것이 보장되었으므로 포기하고 즉시 오류를 보고합니다.

이상적으로는 서버가 무차별적으로 연결을 닫는 이유를 조사해야 합니다. 그동안 전송 중에 루프를 설정하는 것이 도움이 될 수 있습니다.

while :
do
    rsync ... /media/Restic/ [email protected]:/DataVolume/BACKUPS/T4-Ubuntu-Restic &&
        break
    ss=$?

    [[ -t 2 ]] && echo "Rsync failed with status $ss; retrying..." >&2
    sleep 60
done

관련 정보