Когда я пытался скопировать файл (размером) по сети, используя scp, я получаю сообщение об ошибке. <file> stalled
Почему это происходит? Как мне решить это?
Мне нравится Rclone для этого; У меня никогда не было проблем с этим.
Хатшепсут
Я отменил и перезапустил команду scp, и проблема исчезла для меня
килоджоулей
Ответы:
72
Это происходит потому, что scpон пытается захватить как можно большую пропускную способность, и любая задержка (со стороны брандмауэра и т. Д.) Может остановить его. Ограничение пропускной способности (с опцией -l) это исправит.
Например, вы можете захотеть ограничить полосу пропускания 1 МБ / с (= 8192 Кбит / с):
Спасибо за ваш ответ и ссылку на источник. Но я думаю, что ваш источник говорит, что это -l 8192означает 8192 Кбит / с, и это -lможет работать до 1 Мбит / с (что кажется немного устаревшим в настоящее время).
elmicha
2
@elmicha 8192Kb == 1 МБ
Лелуш Лампероуг
@Eknath Ой, ты прав.
elmicha
2
Просто для пояснения: пример ограничивает пропускную способность scp до 8192 Кбит / с. Автор исходной статьи предполагает, что это число должно нормально работать для соединений со скоростью до 1 Мбит / с.
Есть ли шанс, что вы находитесь за брандмауэром Cisco ASA? Если это так, отключите «рандомизацию порядкового номера», и это очень поможет - также отключите разгрузку TCP (ethtool -K $ INTERFACE tso off gso off gro off), если вы используете Cisco ASA с сетевыми картами Broadcom на вашем сервере. ,
Это гений. Это изменение является постоянным или мне нужно поместить команду где-нибудь? Просто чтобы прояснить, вы должны установить это на вашей сетевой карте, а не на интерфейсе cscotun.
Мьяггард
1
Учитывая сообщение об ошибке, которое мы получили, когда scp остановился, я заподозрил, что шифрование не сработало. «Подлинность хоста« myserver (10.10.11.12) »не может быть установлена. Идентификатор ключа ECDSA - SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo» Имея это в виду, я запустил «scp -c aes128-ctr /tmp/igile». src myserver: / tmp / bigfile ". scp был успешным с альтернативным шифром. Есть ли проблема с шифром по умолчанию, уносящим буферное пространство?
Попробуйте добавить «-c» с альтернативным шифром и посмотреть, разрешит ли он вашу задержку.
Ответы:
Это происходит потому, что
scp
он пытается захватить как можно большую пропускную способность, и любая задержка (со стороны брандмауэра и т. Д.) Может остановить его. Ограничение пропускной способности (с опцией -l) это исправит.Например, вы можете захотеть ограничить полосу пропускания 1 МБ / с (= 8192 Кбит / с):
Источник: http://www.aixmind.com/?p=1371 - Wayback Machine
источник
-l 8192
означает 8192 Кбит / с, и это-l
может работать до 1 Мбит / с (что кажется немного устаревшим в настоящее время).Мне удалось решить это с помощью rsync:
источник
Есть ли шанс, что вы находитесь за брандмауэром Cisco ASA? Если это так, отключите «рандомизацию порядкового номера», и это очень поможет - также отключите разгрузку TCP (ethtool -K $ INTERFACE tso off gso off gro off), если вы используете Cisco ASA с сетевыми картами Broadcom на вашем сервере. ,
источник
Учитывая сообщение об ошибке, которое мы получили, когда scp остановился, я заподозрил, что шифрование не сработало. «Подлинность хоста« myserver (10.10.11.12) »не может быть установлена. Идентификатор ключа ECDSA - SHA256: + zkyskXlxVQ0kRorLW26pzprIYbsM4N3hbaDLz1RNpo» Имея это в виду, я запустил «scp -c aes128-ctr /tmp/igile». src myserver: / tmp / bigfile ". scp был успешным с альтернативным шифром. Есть ли проблема с шифром по умолчанию, уносящим буферное пространство?
Попробуйте добавить «-c» с альтернативным шифром и посмотреть, разрешит ли он вашу задержку.
источник