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

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

Re: Problemas com o IF


From: address@hidden
Subject: Re: Problemas com o IF
Date: Wed, 11 May 2011 11:38:54 -0000
User-agent: eGroups-EW/0.82

Agradeço a ajuda.

Consegui concluir o script, ficou da seguinte forma:

#!/bin/bash
START="sudo /opt/apache-app/bin/apachectl start"
PGREP="/usr/bin/pgrep"
HTTPD="httpd"
# find httpd pid
$PGREP ${HTTPD}
if [ $? -ne 0 ] # if apache not running
then
echo 'nenhum pid encontrado, startando apache\n';
# restart apache
$START
echo 'apache startado, com os pids';
sleep 2;
ps -ef |grep httpd |grep -v grep;
fi

[]'s

Carlos


--- Em address@hidden, Claudio Braz <claudio.braz@...> escreveu
>
> Boa noite Galera,
> 
> Sou novato em linux e mexo em shell script mais por curiosidade mesmo..
> Eu dei uma lida no Papo de butequim e aprendi uns macetes legais lá e por
> isso vou arriscar um palpíte....
> 
> Nao seria melhor colocar o "ps -ef |grep apache2 | grep -v grep" dentro do
> proprio "if" ???
> caso o programa esteja rodando vai retornar 0 e satisfazer a condição do IF,
> e caso nao tenha retorna 1 e nao satisfaz o IF.
> 
> 
> 
> Em 10 de maio de 2011 18:47, MrBiTs <mrbits.dcf@...> escreveu:
> 
> >
> >
> > -----BEGIN PGP SIGNED MESSAGE-----
> > Hash: SHA256
> >
> >
> > On 05/10/2011 18:10 , carlosbenatti@... wrote:
> > > Prezados,
> > >
> > > Sou novo no forum e novo no mundo do Shell Script, mas estou adorando a
> > experiência de programar, estou estudando via foruns por este motivo tenho
> > muitas duvidas, estou tentando montar um Script que monitore algum serviço e
> > se estiver parado que starte novamente, neste caso o Apache, se possível,
> > poderiam me ajudar com o motivo desse pequeno e humilde script não
> > funcionar?
> > >
> > > #!/bin/bash
> > > TESTE=`ps -ef |grep apache2 | grep -v grep |awk {'print $2'}`
> > > if [ $TESTE-z ]
> > > then
> > > sudo /etc/init.d/apache2 stop
> > > sudo /etc/init.d/apache2 start
> > > sleep 15
> > > fi
> > >
> > > Se eu coloco o 2>&- no final do script ele nem da erro.
> > >
> > > Agradeço a atenção.
> > >
> > > Carlos
> >
> > Vamos começar pelo simples. Você sabe o que significa 2> ? Significa que
> > você está direcionando STDERR para algum lugar. Então, é
> > natural que você não veja mas mensagens de erro.
> >
> > Eu faço coisas parecidas em uns servidores safados por aí. O seu teste está
> > errado. Você viu qual é o resultado do seu ps com os
> > pipes ? Ele vai colocar na variável TESTE uma série de PIDs e o test (
> > alias [ ) dá um erro de too many arguments, erro esse que
> > você poderia ter reportado, já que ninguém tem bola de cristal por aqui.
> > Mas esses gurus sabem de tudo e passam o dia só respondendo
> > e-mail, então está tudo certo com o mundo.
> >
> > Eu utilizaria uma construção mais simples, com o pidof. Além disso, o teste
> > está errado porque o -z está após a variável que você
> > quer testar, quando ele deveria vir antes. Então algo assim:
> >
> > TESTE=$(pidof apache2)
> >
> > if [ -z "$TESTE"] ; then
> > resto do seu script
> >
> > Proteja a variável TESTE entre aspas, para não ter o erro de too many
> > arguments.
> >
> > - --
> >
> > LLAP
> >
> > .0. MrBiTs - mrbits.dcf@...
> > ..0 GnuPG -
> > http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> > 000 http://www.mrbits.com.br
> >
> > -----BEGIN PGP SIGNATURE-----
> > Version: GnuPG v1.4.10 (Darwin)
> >
> > iQEcBAEBCAAGBQJNybKLAAoJEG7IGPwrPKWrPQIH/jhTlsXx4AveJJg23SVxB0hj
> > 3tTGg5Ns+UzTsktK13FcacWlhvRQk0YYx/uer0ryRhJQQ3bUAJQ0HIgaSZDtMJ51
> > v7qw3fLlA0tF8M6QPqc+JZ61qCBbYuFzzJE7SiqwqrgyjahCtqgkieogwQId7yQS
> > scymjVwMfsgP5V2MVQBYDBU46Pq46zK/N8JE274MYn8rjjwEwQvAuSp75vhQLAAY
> > VUmERV/skqe9A+kzNtbmqqJXnaEgYXO5euBqmAWnFlj+WKLGNAbvADmZwMTnSwgC
> > kmXDLs6HyNZvFvTruH7E2zLgbudwBJn4UhgVQAPofTyZT/gPZdXWxLLk0kdAc+M=
> > =KI11
> > -----END PGP SIGNATURE-----
> >  
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>




reply via email to

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