scp -3 não funciona mais

1

Estou tentando transferir um arquivo grande entre dois hosts remotos (ambos em sub-redes diferentes). Eu encontrei este comando para trabalhar pela primeira vez:

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

O comando funcionou na primeira vez, agora quando tento executá-lo novamente para transferir os outros arquivos, ele nunca é transferido. Em vez disso, recebo uma solicitação de senha e, em seguida, ela sai com um código de saída 1. A execução de -v me dá:

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

Alguém pode me dizer por que, de repente, esse comando não funciona mais? Eu verifiquei /var/log/syslog e não consegui encontrar nada ..

    
por ryekayo 26.05.2017 / 16:21

1 resposta

2

Você pode usar -vvv para obter mais informações do log. Mas o problema com -3 é que você não pode razoavelmente obter qualquer informação de depuração sobre os erros dos lados remotos ( bug upstream com patch ). As mensagens erradas estão sendo enviadas de um lado para o outro e não há lugar para exibi-las (sem apresentar alguma complexidade).

Para ter uma ideia do que poderia dar errado é provavelmente mais fácil certificar-se de que o arquivo de origem é legível (e não há erro de digitação no nome) e a pasta de destino é gravável, há espaço em disco suficiente e assim por diante :

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

Outra possibilidade é criar o OpenSSH a partir do código-fonte e aplicar o patch vinculado acima. Ele deve imprimir os erros no cliente (deve ser o suficiente para fazer isso apenas na sua máquina).

Ou use apenas rsync , que é mais adequado para desempenho, taxa de transferência e usabilidade.

    
por 26.05.2017 / 16:35

Tags