Por que o scp fica parado? Como eu resolvo isso?

52

Quando tentei copiar um arquivo (de tamanho) pela rede usando scp, recebo um erro <file> stalled Por que isso acontece? Como eu resolvo isso?

Lelouch Lamperouge
fonte
Eu gosto do rclone por isso; Eu nunca tive problemas com isso.
Hatshepsut
I cancelada e reiniciada o comando scp eo problema foi embora para mim
quilojoules

Respostas:

72

Isso acontece porque scpestá tentando obter o máximo de largura de banda possível e qualquer atraso (por um firewall etc.) pode impedi-lo. Limitar a largura de banda (com a opção -l) irá corrigi-lo.

Por exemplo, convém limitar a largura de banda a 1 MB / s (= 8192 Kbits / s):

 scp -l 8192 <file> <destination>

Fonte: http://www.aixmind.com/?p=1371 - Wayback Machine

muru
fonte
Obrigado pela sua resposta e pelo link para a fonte. Mas acho que sua fonte diz que isso -l 8192significa 8192 Kbit / segundo, e -lpode funcionar até 1 Mbit / segundo (o que parece estar um pouco desatualizado hoje em dia).
elmicha
2
@elmicha 8192Kb == 1MB
Lelouch Lamperouge
@Eknath Opa, você está certo.
elmicha
2
Apenas para esclarecer: o exemplo limita a largura de banda do scp a 8192 Kbit / segundo. O autor do artigo de origem sugere que esse número funcione bem para conexões de até 1 Mbit / segundo.
Erwin Wessels
11
Trabalhou como um encanto :)
Saurabh
5

Consegui resolvê-lo usando o rsync:

rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt [email protected]:/tmp/
user1453912
fonte
2

Alguma chance de você estar atrás de um firewall Cisco ASA? Em caso afirmativo, desative a "randomização do número de sequência" e isso ajudará muito - também desative o TCP Offload (ethtool -K $ INTERFACE para desativar o gso off) se você estiver em um Cisco ASA com NICs Broadcom em seu servidor .

dotwaffle
fonte
Isso é genialidade. Essa mudança é permanente ou preciso colocar o comando em algum lugar? Só para esclarecer, você deve configurá-lo na sua NIC, não na interface cscotun.
Mjaggard 18/05
1

Dada a mensagem de erro que recebemos quando o scp parou, eu suspeitava que a criptografia estava falhando. "A autenticidade do host 'myserver (10.10.11.12)' não pode ser estabelecida. A impressão digital da chave ECDSA é SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo" Com isso em mente, executei "scp -c aes128-ctr /tmp/test.dan/big. src myserver: / tmp / bigfile ". O scp foi bem-sucedido com a cifra alternativa. Existe um problema com a cifra padrão que está soprando um espaço no buffer?

Pode tentar adicionar "-c" com uma cifra alternativa e ver se isso resolve sua paralisação.

Dan Snavely
fonte