scp -3은 더 이상 작동하지 않습니다.

scp -3은 더 이상 작동하지 않습니다.

두 개의 원격 호스트(둘 다 서로 다른 서브넷에 있음) 간에 대용량 파일을 전송하려고 합니다. 이 명령이 처음으로 작동하는 것을 발견했습니다.

scp -3 root@foo:/path/to/largefile user@bar:/path/to/where/it/should/go/

이 명령은 처음에는 작동했지만 이제 다른 파일을 전송하기 위해 다시 실행하려고 하면 전송되지 않습니다. 대신 비밀번호를 묻는 메시지가 표시되고 종료 코드 1로 종료됩니다. 실행하면 다음이 -v표시됩니다.

debug1: Sending command: scp -v -f /run/sr-mount/3e3a905f-28ad-01b4-d50a-1ffe151ed28a/debian-8.8.0-amd64-CD-1.iso
Sending file modes: C0644 660602880 debian-8.8.0-amd64-CD-1.iso
Sink: C0644 660602880 debian-8.8.0-amd64-CD-1.iso
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2480, received 2372 bytes, in 0.1 seconds
Bytes per second: sent 32882.6, received 31450.6
debug1: Exit status 1
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2904, received 2964 bytes, in 3.3 seconds
Bytes per second: sent 893.5, received 912.0
debug1: Exit status 1

갑자기 이 명령이 더 이상 작동하지 않는 이유를 누군가 말해 줄 수 있습니까? 확인해봤는데 /var/log/syslog아무것도 안나오더라구요..

답변1

-vvv로그에서 추가 정보를 얻는 데 사용할 수 있습니다 . 그러나 문제는 -3원격 측에서 오류에 대한 디버그 정보를 합리적으로 얻을 수 없다는 것입니다(패치가 포함된 업스트림 버그). 오류 메시지는 한 제거 측에서 다른 제거 측으로 전송되고 있으며 이를 표시할 장소가 없습니다(복잡함을 유발하지 않고).

무엇이 잘못될 수 있는지 알아보려면 소스 파일을 제대로 읽을 수 있는지(그리고 이름에 오타가 없는지) 대상 폴더에 쓸 수 있는지, 디스크 공간이 충분한지 등을 확인하는 것이 가장 쉽습니다.

ssh root@foo stat /path/to/largefile
ssh user@bar stat /path/to/where/it/should/go/

다른 가능성은 소스에서 OpenSSH를 빌드하고 위에 링크된 패치를 적용하는 것입니다. 클라이언트의 오류를 인쇄해야 합니다(귀하의 컴퓨터에서만 수행하면 충분합니다).

아니면 rsync성능, 처리량, 유용성에 더 적합한 를 사용하세요.

관련 정보