Quando tentei copiar um arquivo (de tamanho) pela rede usando scp, recebo um erro <file> stalled
Por que isso acontece? Como eu resolvo isso?
Quando tentei copiar um arquivo (de tamanho) pela rede usando scp, recebo um erro <file> stalled
Por que isso acontece? Como eu resolvo isso?
Respostas:
Isso acontece porque scp
está 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>
-l 8192
significa 8192 Kbit / segundo, e -l
pode funcionar até 1 Mbit / segundo (o que parece estar um pouco desatualizado hoje em dia).
Consegui resolvê-lo usando o rsync:
rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress /tmp/bigfile.txt user@host.com:/tmp/
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 .
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.