limite de linha de comando para Solaris
-
03-07-2019 - |
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?
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:
- Alterar qual shell você usa no Solaris, alterando o padrão para o usuário.
- 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