shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] liberar aplicação shell para outras opções


From: Karin Klayton Schiochet
Subject: Re: [shell-script] liberar aplicação shell para outras opções
Date: Tue, 20 Jan 2009 13:55:17 -0300

Senhores,

Obrigado pela ajuda, e fico até com vergonha pois erra isso mesmo Alain,
eu já tinha usado diversas vezes o "&" para executar um programa e
liberar o shell e agora eu tinha esquecido completamente de utiliza-lo.

Edmarssouza  - Erá sim para continuar o loop, mais o script estava
fazendo o loop infinito com o until do done e o que eu não estava
conseguindo era executar chamadas ssh para conexão com outros servidores
e logo depois de executar uma chamada ssh ele retornar para o menu
independente do shell filho estar aberto, coisa que só acontecia depois
de fechar o chell filho.

Agora me aconteceu outro problema, pelo terminal eu executo estes
programa normalmente para abrir outra instancia de shell para rodar o
comando normalmente. Agora dentro do script quando faço a chamada para o
comando, ele me abre uma janela e logo em seguida fecha.

Eu estava utilizando o xterm sem problemas, no entanto, ele é um pouco
limitado e eu gostaria de utilizar o bash que me dá mais opções.

Fiz o teste com outros comandos e alguns funcionaram normal mas quando
eu faço uma chamada gnome-terminal -e --command="ssh usuario@IP -p
porta" &. Mesmo sem o "&" no final ele esta fechando a janela logo em
seguida. Muito estranho esse comportamento. O pior não fica nada em
background, é fechada mesma a janela.

Um grande abraço a todos,
Karin  Klayton Schiochet

Em Ter, 2009-01-20 às 11:56 -0200, Alain M. escreveu:
> Já que todos não sabem se entenderam o que você quer, eu acho que 
> entendi outra coisa...
> 
> Para executar um outro script sem interromper o atual, o outro deve 
> rodar "em background", para isto basta colocar um "&" (sem as aspas)
> no 
> final da linha. O outro script começa a rodar e o atual continua 
> imediatamente na linha seguinte.
> 
> Alain
> 
> Karin Klayton Schiochet escreveu:
> > Senhores,
> > 
> > Depois de montar um script simples para facilitar as manutenções em
> > clientes apareceu uma dúvida que não sei se é possível fazer já que
> o
> > scripts em shell seguem o padrão de execução em "lote" vamos dizer
> > assim.
> > 
> > tenho um script que lista os servidores que preciso acessar
> remotamente
> > e de acordo com a opção ele chama outro shell passando os parâmetros
> > para acessar o servidor via ssh. Eu gostaria que após fazer esse
> > chamado, o shell principal retornasse ao menu principal e fosse
> possível
> > caso necessário chamar outras opções.
> > 
> > A minha dúvida é se é possível retornar a execução do script sem ter
> que
> > terminar o sessão aberta com o novo shell para que ele possa
> retornar ao
> > menu. 
> > 
> > O script é basicamente este que está abaixo 
> > 
> > ############################################
> > #!/bin/bash
> > #
> > #-------------------- VARIAVEIS --------------------
> > #
> > #----------------- SERVERS XXXXXXXXX ----------------
> > IPSRV1=XXX.XXX.XXX.XXX
> > IPSRV2=XXX.XXX.XXX.XXX
> > NAMESRV1=XXXXXX
> > NAMESRV2=XXXXXX
> > 
> > #---------------- SERVERS YYYYYYY---------------
> > SRVFW=YYY.YYY.YYY.YYY
> > NAMESRV1=YYYY
> > SRVPX=YYY.YYY.YYY.YYY
> > NAMEPX2=yyyyyyyy
> > SRV3=YYY.YYY.YYY.YYY
> > NAMESRV3=YYYYYY
> > 
> > #------------------ SERVERS ZZZZZZZZZ -----------------
> > IPSRV1=ZZZ.ZZZ.ZZZ.ZZZ
> > NAMESRV1=ZZZZZZ
> > 
> > # E assim vai
> > ........
> > ........
> > ........
> > ........
> > # Termina variáveis
> > 
> > #----------------------- MENU ----------------------
> > menu()
> > { 
> > clear
> > exit=9
> > 
> > until [ "$X" == "$exit" ]; do
> > 
> > echo "---------------------------------------------------"
> > echo "| |"
> > echo "| Gerenciador de conexões ssh - EMPRESA |"
> > echo "| `date --date "0 day ago" +%d/%m/%Y`
> > |"
> > echo "---------------------------------------------------"
> > echo
> > echo "1 - FIREWALL XXXXXXXXXX ($NAMESRV1)"
> > echo "2 - PROXY XXXXXXXXXX (NAMESRV2)"
> > echo "3 - FIREWALL YYYYYYYY ($NAMESRV1)"
> > echo "4 - FIREWALL ZZZZZZZZ ($NAMESRV1)"
> > echo
> > echo "9 - Sair"
> > echo
> > echo -e "Escolha uma das opções: \c"
> > read X
> > echo
> > 
> > case "$X" in
> > 
> > 1) echo "Acessando o FIREWALL da XXXXXXXXXX ($SRVFW)"
> > gnome-terminal --window -t "EMPRESA - TITULO" --command='ssh
> usuario@
> > $SRVFW -p porta'
> > ;;
> > 
> > 2) echo "Acessando o PROXY da YYYYYY ($SRVPX)"
> > gnome-terminal --window -t "EMPRESA - TITULO" --command='ssh
> usuario@
> > $SRVPX -p porta'
> > ;;
> > 
> > 3) echo "Acessando o FIREWALL da ZZZZZZZZ ($IPSRV1)"
> > gnome-terminal --window -t "EMPRESA - TITULO" --command='ssh
> usuario@
> > $IPSRV1 -p porta'
> > ;;
> > 
> > 9) echo "FINALIZANDO O SCRIPT..."
> > sleep 1
> > exit 1
> > ;;
> > 
> > *) echo "Opção desconhecida!!!"
> > sleep 2
> > clear;
> > ;;
> > 
> > esac
> > done
> > }
> > menu 
> > ############################################
> > 
> > Estou usando CentOS com gnome por isso uso o gnome-terminal.
> Gostaria de
> > saber se é possível após escolher uma opção o script retorne para o
> menu
> > e eu possa fazer outras opções.
> > 
> > Um grande abraço a todos e desde já agradeço a contribuição.
> > 
> 
> 
> 
>  
-- 
Karin Klayton Schiochet
Administrador de Redes
address@hidden
Tel: (91) 8121-5809



reply via email to

[Prev in Thread] Current Thread [Next in Thread]