+ Responder ao Tópico



  1. #1

    Exclamation Travamento do SSH

    Fala moçada!

    Sou novo por aki e estou com um problema...
    Fiz um script que é responsável pela parada dos processos de um sistema, nesse script eu utilizo acessos via ssh para parada de processos remotamente em outros servidores. POrém estou com o problema de q qdo um comando é chamado remotamente ele inicia os processos corretamente mas trava como se estivesse esperando algo, antes que o comando se complete... Oq naum acontece quando o mesmo comando é rodado localmente...

    Alguém pode me ajudar?

    Agradeço desde ja!

    Hugo Hirata

  2. #2

    Padrão Script...

    Sem postar o script fica dificil saber o que está ocorrendo...

  3. #3

    Thumbs up

    Também gostaria de ver esse script.
    Deve ser muito interessante.
    Coloque aqui no Underlinux para vermos .....
    Um abraço ..............

  4. #4

    Padrão Script

    SBASEA="ssh usuario@ip . ~/.bash_profile;"
    SBASEB="ssh usuario@ip . ~/.bash_profile;"

    echo "****Inicializando processos...****"
    if test $1 = "B"
    then $SBASEB X start group1 now
    $SBASEB X start group2 now
    $SBASEB X start group3 now
    $SBASEB X start MC now
    else $SBASEA X start $3 now
    fi
    O comando X é um Shell Script que é responsável pelo restart dos processos. Esse Script qdo rodado localmente naum da nenhum problema... Só qdo é rodado via ssh que ele trava... O problema é que o
    comando não retorna uma resposta para o ssh pq ele trava... Não sei o pq disso... Se alguém puder me ajudar...
    Grato
    Hugo Hirata

  5. #5

    Padrão

    Sinceramente, não da pra entender nada desse script... hehehe...

    Recomendo você utilizar a técnica de here document...
    Seu script ficaria assim:

    #!/bin/bash

    echo ** Inicializando Processos **
    if [ $1 = "B" ]
    then
    ssh user@ip <<THISisTHEend
    X start group1 now
    X start group2 now
    X start group3 now
    X start MC now
    THISisTHEend
    else
    ssh user@ip X start $3 now
    fi

    #fim do script

    Só mais uma coisa...
    Você está declarando as variáveis:

    SBASEA="ssh usuario@ip . ~/.bash_profile;"
    SBASEB="ssh usuario@ip . ~/.bash_profile;"

    portanto, quando o bash substitue as variáveis, seu comando fica:

    ssh usuario@ip . ~/.bash_profile; X start group2 now

    Você está entendendo a sintaxe do seu comando? O ponto e virgula server para separa comando numa mesma linha de código, portanto você está executando um comando remoto (. ~/.bash_profile) e um comando local (X start group2 now). É isso mesmo que você deseja fazer?

  6. #6

    Padrão

    É isso mesmo que quero fazer... Esse script X está nas duas máquinas, tanto no servidor qto em minha máquina!
    E pra explicar um pouco mais...
    As variáveis SBASEA e SBASEB fazem o acesso via ssh para duas máquinas diferentes. Qdo rodo o script X na máquina A localmente naum da nenhum problema, o problema ocorre qdo via SSH, o script X é rodado na máquina A...

  7. #7

    Padrão

    Citação Postado originalmente por hugohirata Ver Post
    É isso mesmo que quero fazer... Esse script X está nas duas máquinas, tanto no servidor qto em minha máquina!
    E pra explicar um pouco mais...
    As variáveis SBASEA e SBASEB fazem o acesso via ssh para duas máquinas diferentes. Qdo rodo o script X na máquina A localmente naum da nenhum problema, o problema ocorre qdo via SSH, o script X é rodado na máquina A...
    Amigo,

    Está ocorrendo alguns erros de comunicação...
    Vc rodou o script que lhe passei? funcionou?

    O que vc está realmente tentando fazer? Eu estou entendendo o seguinte:

    Sejam A e B dois computadores conectados numa rede e acessíveis entre si e X um script que executa um conjunto de comandos presente e executáveis em ambas as máquinas. Você está no cumpudator A e deseja, via SSH, rodar o script X na máquina B. É isso?

  8. #8

    Padrão

    Olá,
    Qto a alternativa de usar o here document tive problemas, meu script deu msg de erro:

    unexpected end of file

    Ae qdo tiro as linhas inseridas do here document o erro desaparece....

    Isso mesmu, quero rodar da máquina A, através do meu script, o script X da máquina B, porém o script X qdo rodado via SSH trava ao final do processamento, impedindo o uso do console!!

  9. #9

    Padrão

    Rapaz, digitei o meu código aqui (sem os comandos do seu script claro) e rodou belza...

    Quando ao seu, faça o seguinte, ao inves de declara as variáveis "ssh usuario@ip . ~/.bash_profile;" declare apenas "ssh usuario@ip"

    Se isso não resolver... acabaram minhas idéias!