Эквивалент scp -l bandwidth_cap для .ssh/config?

Эквивалент scp -l bandwidth_cap для .ssh/config?

Короткая форма:

Вы можете ограничить полосу пропускания , scpиспользуемую -lкоммутатором, передав число в кбит/с.

Я бы предпочел установить это в своем .ssh/configфайле для определенных имен машин.

Какой эквивалент именованного параметра для -l? Я не смог его найти.

Дополнительный вопрос:

В общем, не уверен, как сопоставлять туда и обратно параметры командной строки ssh и имена конфигураций, если не считать поиска в Google или ручного сравнения страниц man в каждом конкретном случае. Есть ли таблица, которая напрямую уравнивает эти два?

Более длинная форма первого вопроса с контекстом:

Я начал использовать ssh config довольно часто, особенно теперь, когда мне нужно проходить через прокси и делать много сопоставлений портов. Я даже определяю одну и ту же машину несколько раз в зависимости от того, какой тип туннелирования мне нужен.

Однако при загрузке большого файла на моей машине сложно делать что-либо еще. Несмотря на то, что у меня больше пропускной способности для скачивания, чем для загрузки, я думаю, что это scpперегружает ссылку, поэтому даже мои небольшие запросы не могут достичь Интернета.

Эту проблему можно решить с помощью -lпереключателя командной строки band для scp.

scp -l 1000 bigfile.zip titan:

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

Поэтому вместо:

scp bigfile.zip titan:

Я бы сказал:

scp bigfile.zip titan-upload:

Или даже установить разные ограничения в зависимости от того, где я нахожусь:

scp bigfile.zip titan-upload-from-work:
  vs.
scp bigfile.zip titan-upload-from-home:

Я обычно использую Mac и Linux.

решение1

Увы, как уже упоминалось, не видно возможности настройки ограничения пропускной способности. (Я проверил исходный код!)

Некоторые возможные решения — использовать псевдоним для scp или, возможно, функцию. Bash обычно является оболочкой по умолчанию как на Mac, так и на Linux, так что это может сработать:

alias scp='scp -l 1000 '
     -or-
alias scp-throttle='scp -l 1000 '

(обратите внимание на пробел внутри кавычек! 1 ) Это приведет к тому, чтоКАЖДЫЙКоманда scp, которую вы используете для ограничения пропускной способности. Учитывая вашу ситуацию, возможно, лучшее решение в целом.

Второй вариант может быть хорошим выбором, поскольку вы можете использовать scp для «нормальных» передач, а scp-throttle — для более медленных передач.

Или функция, с чуть большими мозгами:

function scp { if [ "$*" =~ "-upload" ]; then command scp -l 1000 "$@"; else command scp  "$@"; fi; }

В принципе, если мы найдем '-загрузить' в любом месте аргументов мы выполняем передачу с ограничением по bw, в противном случае происходит обычная передача.

Это позволит вам продолжать использовать несколько имен/псевдонимов для обозначения действий.

  • scp aaa titan:- загрузится нормально
  • scp aaa titan-upload:- будет душить
  • scp titan:aaa .- нормальный
  • scp titan-upload-from-home:aaa .- задушенный
  • scp a-file-to-upload titan:- упс, задушили, не намеренно!

РЕДАКТИРОВАТЬ:

1 - Завершающий пробел ВНУТРИ псевдонима позволяет дальнейшее расширение псевдонима после команды-псевдонима. ОЧЕНЬ полезно.Bash Man Page, __ALIASES__ section

Связанный контент