Как dd over ssh может сообщать о скорости чтения, превышающей пропускную способность сети?

Не вызывать внешний процесс для проверки, а использовать внутреннюю функцию оболочки test

if test -d "$i"; then # check that directory exists

Между тестом и вызовом rm возможно, что другие процессы уже стерли каталог, поэтому rm выйдет из строя. Вы можете использовать переключатель-f или перенаправить ошибки

/bin/rm "$i/*" 2> /dev/null # remove the files

9
01.12.2020, 13:23
1 ответ

SSH может работать как сжатый протокол, и, судя по вашим результатам, он включен как таковой по умолчанию в вашем дистрибутиве или конфигурации (или вы используетеssh -C). Таким образом, ваш поток нулей хорошо сжимается во что-то гораздо более компактное --по вашим показаниям, с коэффициентом сжатия около 300 :, конечный результат составляет около 0,3% от исходного размера. По этой причине это не очень хороший выбор для тестирования скорости сети, поскольку может потребоваться небольшая пропускная способность сети, чтобы получить отличный результат на приемнике.

Вы можете отключить сжатие по запросу с помощью -o Compression=noв командной строке или навсегда для соединения, указав Compression noв конфигурации вашего SSH-клиента.

Другим вариантом является использование чего-то более простого, такого как netcat, который не реализует сжатие, аутентификацию и т.п., хотя по этой причине я бы не рекомендовал использовать его для передачи файлов в реальном -мире.

15
18.03.2021, 22:46

Теги

Похожие вопросы