Equivalente a scp -l width_cap para .ssh/config?

Equivalente a scp -l width_cap para .ssh/config?

Forma curta:

Você pode limitar a largura de banda scpusada com o -lswitch, passando um número em kbits/s.

Prefiro definir isso em meu .ssh/configarquivo para determinados nomes de máquinas.

Qual é a configuração nomeada equivalente para -l? Eu não consegui encontrá-lo.

Questão a seguir:

Geralmente, não tenho certeza de como mapear entre as opções de linha de comando ssh e os nomes de configuração, além de fazer pesquisas no Google ou comparar manualmente as páginas de manual caso a caso. Existe uma tabela que iguala diretamente os dois?

Forma mais longa da primeira pergunta, com contexto:

Comecei a usar bastante o ssh config, especialmente agora que preciso passar por um proxy e fazer muitos mapeamentos de portas. Eu até defino a mesma máquina mais de uma vez, dependendo do tipo de tunelamento necessário.

No entanto, ao enviar um arquivo grande, é difícil fazer qualquer outra coisa na minha máquina. Mesmo que eu tenha mais largura de banda de download do que acima, acho que isso scpsatura o link, de modo que mesmo minhas pequenas solicitações não conseguem acessar a Internet.

Há uma solução para isso, usando a -lopção de linha de comando de largura de banda para scp.

scp -l 1000 bigfile.zip titan:

Eu gostaria de usar isso em minha configuração, então criaria uma entrada adicional chamada "titan-upload" e a usaria como destino sempre que fizer upload.

Então, em vez de:

scp bigfile.zip titan:

Eu diria:

scp bigfile.zip titan-upload:

Ou até mesmo definir limites diferentes dependendo de onde estou:

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

Geralmente uso Mac e Linux.

Responder1

Infelizmente, como foi mencionado, não parece haver uma opção de configuração para limitar a largura de banda. (Eu verifiquei o código-fonte!)

Algumas soluções possíveis são usar um alias para scp, ou talvez uma função. Bash é normalmente o shell padrão no Mac e no Linux, então isso pode funcionar:

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

(observe o espaço à direita entre aspas! 1 ) Isso causariaTODOComando scp que você usa para limitar a largura de banda. Considerando a sua situação, talvez a melhor solução geral.

A segunda pode ser uma boa escolha, já que você pode usar scp para transferências 'normais' e scp-throttle para transferências mais lentas.

Ou uma função, com um pouco mais de inteligência:

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

Basicamente, se encontrarmos '-carregar'em qualquer lugar dos argumentos, realizamos a transferência com o limite bw, caso contrário, ocorre uma transferência normal.

Isso permitiria que você continuasse usando seus vários nomes/aliases para denotar ações.

  • scp aaa titan:- carregaria normalmente
  • scp aaa titan-upload:- iria estrangular
  • scp titan:aaa .- normal
  • scp titan-upload-from-home:aaa .- estrangulado
  • scp a-file-to-upload titan:- opa, estrangulado, não intencional!

EDITAR:

1 - O espaço à direita DENTRO do alias permite maior expansão do alias após o comando alias. MUITO útil/útil.Bash Man Page, __ALIASES__ section

informação relacionada