Re: [PHPBR] Condição para Mostrar status.

13 views
Skip to first unread message

Er Galvao Abbott

unread,
Apr 30, 2013, 4:47:05 AM4/30/13
to lista...@googlegroups.com
A resposta está na própria pergunta =)

A mensagem do Squid é a string "
squid3 start/running, process 1207", que é diferente de apenas "start/running". Um detalhe: o seu código tem um erro na parte que vai cair fora de qualquer maneira, mas é bom lembrar: um sinal de igual == operação de atribuição, dois sinais de igual == comparação.

O que você precisa, por exemplo, é saber se a substring (um "pedaço" de uma string) "start/running" está presente na string que está sendo testada. Pra isso você pode usar uma função do tipo strstr (não é exatamente isso que ela faz, mas serve) ou se quiser usar Expressões Regulares, a função preg_match.

Er Galvão Abbott
http://www.galvao.eti.br/

On 04/29/2013 05:14 PM, Ronaldo davi wrote:
Pessoal estou trabalhando em cima de um gestor para squid estou querendo em determinado local colocar o Status do serviço se esta rodando ou não criei a seguinte função contudo parece que tem um erro no final

<?php 
/* Pegando Status do Serviço */
$status = shell_exec("sudo service squid3 status");
/* Mensagem */
$info == '';
if( $status = "start/running" ){$info = 'Serviço ONLINE'}else{$info = 'Serviço PARADO'} echo $status . $info; ?>

Quando coloco da forma que a expressão aparece da erro 500 no browser no shell do linux ao rodar o comando:

sudo service squid3 status

O retorno e este: squid3 start/running, process 1207

O numero do processo sempre muda então a ideia e desprezar ele.

Alguma dica ?




--
--
---
Você recebeu esta mensagem por estar inscrito no grupo "PHP BR"
 
*** NÃO ESQUEÇA: As regras do grupo estão disponíveis em nossa Wiki:
http://wiki.phpbr.com.br/index.php/Regras_de_Utiliza%C3%A7%C3%A3o_da_Lista
 
Para enviar mensagens para o grupo, envie e-mails para lista...@googlegroups.com
Para cancelar sua inscrição neste grupo, envie e-mail para lista-phpbr...@googlegroups.com
Para mais opções visite este grupo em: http://groups.google.com/group/lista-phpbr
---
Você está recebendo esta mensagem porque se inscreveu no grupo "PHPBR" dos Grupos do Google.
Para cancelar a inscrição neste grupo e parar de receber seus e-mails, envie um e-mail para lista-phpbr...@googlegroups.com.
Para obter mais opções, acesse https://groups.google.com/groups/opt_out.
 
 

Rubens Matrono

unread,
Apr 30, 2013, 5:16:28 AM4/30/13
to lista...@googlegroups.com
$info == '';
o correto seria
$info = '';

if( $status = "start/running" ){$info = 'Serviço ONLINE'}else{$info = 'Serviço PARADO'} echo $status . $info;
esta faltando uns ; no final e o == depois do status
if( $status == "start/running" ){$info = 'Serviço ONLINE'; }else{$info = 'Serviço PARADO'} echo $status . $info;

mesmo assim não funcionaria porque "squid3 start/running, process 1207" != "start/running" .. então vc pode usar strpos que procura aquele pedaço e ignora o resto
if( strpos($status, 'start/running') === false ){$info = 'Serviço PARADO'; }else{$info = 'Serviço ONLINE'; } echo $status . $info;


Antonio Luiz de Carli junior

unread,
Apr 30, 2013, 8:31:36 AM4/30/13
to lista-phpbr
if($valor1 == $valor2 ){   }

sinal de comparação de igualdade:  ==
sinal para receber um valor: = 

Ronaldo Davi

unread,
May 2, 2013, 11:59:02 AM5/2/13
to lista...@googlegroups.com
Olá Senhores,

agradeço a todos pela colaboração realmente com as dicas obtive sucesso o código abaixo e o correto:

 <?php 
/* Pegando Status do Serviço */
$status = shell_exec("sudo service squid3 status");
/* Mensagem */
$info = '';
if( strpos($status, 'start') === false ){$info = 'PARADO'; }else{$info = 'ONLINE'; } echo $info; ?>




Em 30 de abril de 2013 06:16, Rubens Matrono <rubin...@hotmail.com> escreveu:



--
Atenciosamente,
Ronaldo davi

CTO - chief technical officer - ProtectIT,
Tecnologias Corporativas & software livre,
Consultor Dell Experts 
Fortaleza-CE
Fone: 85 8898.5206(oi) / 9622.6782(Tim) / 8165.4330(Vivo)


ATENÇÃO !!! 

Se houver documentos de escritório incluídos neste e-mail,
eles poderão estar no formato ODF, um padrão aberto, 
gratuito e homologado pela ISO e ABNT.
Para visualizar ou editar, basta copiar e instalar o LibreOffice em
http://www.documentfoundation.org/

Ronaldo Davi

unread,
May 2, 2013, 12:02:08 PM5/2/13
to lista...@googlegroups.com
Ratificando!!!!

Olá Senhores,

agradeço a todos pela colaboração realmente com as dicas obtive sucesso o código abaixo e o que esta funcionando corretamente com as dicas:

 <?php 
/* Pegando Status do Serviço */
$status = shell_exec("sudo service squid3 status");
/* Mensagem */
$info = '';
if( strpos($status, 'start') === false ){$info = 'PARADO'; }else{$info = 'ONLINE'; } echo $info; ?>

Também e necessário adicionar no caso do ubuntu a seguinte linha

Dentro de:
/etc/sudoers

www-data  ALL=ALL NOPASSWD=ALL

rodrigo lima

unread,
May 2, 2013, 4:16:24 PM5/2/13
to lista...@googlegroups.com
Só toma cuidado com este sudoers ai pq agora o user www-data pode executar qualquer comando com sudo, seria bom definir qual comando ele tem permissão =D

Ronaldo Davi

unread,
May 3, 2013, 3:39:18 PM5/3/13
to lista...@googlegroups.com
no final vai ficar apenas a opção squid3 -k reconfigure enquanto ta em dev vou deixar sem pedir nem senha :D
Reply all
Reply to author
Forward
0 new messages