Pergunta

Eu tenho um aplicativo que comandos é executado em um servidor Linux via SSH bem. Quando eu ligar a um servidor Solaris, as coisas não funcionam. Parece que a linha de comando Solaris é limitado a 267 caracteres.

Existe uma maneira de mudar isso?

Update: Como foi salientado antes, este é um limite para o shell padrão para Solaris (sh) vs Linux (bash). Então, agora a pergunta é, existe uma maneira de mudar o limite para sh?

Foi útil?

Solução

Eu acredito (embora possa estar errado) que está relacionado com o shell padrão que você está se conectando. Se você fazer a mudança no Solaris ao mesmo shell você está usando no Linux, faz isso resolver o problema?

Por favor, comente se há uma rota melhor para uma solução, e eu vou fazer a mudança na minha resposta.

Outras dicas

Você pode ver o máximo de comprimento comando atual com este comando:

$ getconf ARG_MAX
1048320

Eu criei um script que pode determinar o comprimento máximo de um comando remoto . Como Craig sugeriu, sua melhor aposta é a de canalizar o comando no padrão, se isso é uma opção.

A meu ver, as opções são:

  1. Alterar qual shell você usa no Solaris, alterando o padrão para o usuário.
  2. Não altere o shell, mas mudar a maneira de executar os comandos.

A primeira é fácil, mas requer um administrador para fazer uma mudança para cada combinação de usuário / máquina, e pode afetar outros programas. Mudando a maneira de executar comandos será mais rápido e mais fácil de manter a longo prazo. Como exemplo, suponha que você precisa executar o seguinte:

/usr/bin/foo with a very long list of options and parameters

Agora você provavelmente está fazendo algo parecido com isto:

ssh user@machine "/usr/bin/foo with a very long list of options and parameters"

Mas você pode fazer o seguinte em vez disso:

echo "/usr/bin/foo with a very long list of options and parameters" | \
ssh user@machine "/bin/bash"

Isto irá fazer o que quiser.

Quando eu executar configure no Solaris 10 e o script configure surge com um valor para o comprimento da linha de comando, a resposta é normalmente na faixa de 256 KB. As conchas padrão no Solaris certamente não tem um limite de menos de 300 bytes.

Dito isso, eu não tenho certeza qual é seu problema. Eu poderia arriscar um palpite sobre o Solaris SSH ter um limite menor -. Eu não encontrei o problema, mas eu tendem a usar SSH como uma maneira de se conectar diretamente (interativa) em vez de executar comandos longos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top