[Cascavel-pm] Duvida com exec

Alexei Znamensky russoz em gmail.com
Segunda Agosto 11 14:41:54 PDT 2008


Não.

O buraco é mais embaixo.


       exec LIST
       exec PROGRAM LIST
The "exec" function executes a system command and never returns-- use
"system" instead of "exec" if you want it to return.  It fails and returns
false only if the command does not exist and it is executed directly instead
of via your system's command shell (see below).
ou
A função "exec" executa um comando do sistema e nunca retorna-- use "system"
ao invés de "exec" se você quer que ela retorne. Ela falha e retorna false
somente se o comando não existir, e ele é executado diretamente, ao invés de
usar o shell de comando do seu sistema (veja abaixo).

Ou seja, o problema já começa aqui:

exec ('ping -c4 192.168.0.122 > /dev/null 2&1');

uma vez que a chamada para a função exec() nunca retorna.

[]s,
Russo

2008/8/11 Thiago Rondon <thiago em aware.com.br>

>
> Agustinho,
>
> Verifique se o 'script' esteja encontrando o comando 'mail', passe o
> caminho completo do
> comando, como por exemplo '/usr/bin/mail', e verifique se está funcionando
> na linha de
> comando também.
>
> Para não depender da tua máquina, que pode ter outros problemas, utilize o
> Mail::Sender,
> segue um exemplo:
>
> my $sender = new Mail::Sender { smtp => 'mail.servidor.com.br',
>                               from => 'Alerta <
> naoresponder em servidor.com.br>',
>                               auth => 'LOGIN',
>                               authid => 'alerta em servidor.com.br',
>                               authpwd => 'senha_do_usuario_alerta',
>                               headers => "MIME-Version:
> 1.0\r\nContent-type: text/html\r\nContent-Transfer-Encoding: 7bit"
>                               };
>
> if (ref ($sender->MailMsg( { to=> "voce em servidor.com.br", subject =>
> "Titulo", msg => "Mensagem",   }) {
>  print "Alerta enviado.";
> }
>
> Abs,
> -Thiago Rondon
>
> Agustinho Coelho escreveu:
>
>  Boa Tarde Pessoal,
>>
>> Estou tentando utilizar a função exec, mas estou enfrentando
>> dificuldades... Eu li o perldoc, tentei utilizar as diversas maneiras
>> aprensentadas, mas sem sucesso. O programa que tento fazer é para verificar
>> se um host da rede está funcionando, se ele não responder, ele me envia um
>> email. (eu tentei utilizar o módulo libemail-simple-perl e
>> libemail-send-perl, mas ainda estou muito cru para isso :S ). Segue o
>> código:
>>
>> #/bin/perl -w
>>
>> exec ('ping -c4 192.168.0.122 > /dev/null 2&1');
>> if ( $? == 0 ); then {
>>       exec ('echo "teste" | mail -s "host $(hostname) is up"
>> email em dominio.com.br');
>> } else {
>>       exec ('echo "teste" | mail -s "host $(hostname)is down "
>> email em dominio.com.br');
>> }
>>
>>
>> Obrigado desde já,
>>
>> Agustinho.
>> _______________________________________________
>> Cascavel-pm mailing list
>> Cascavel-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/cascavel-pm
>>
>>
>>
>>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [
www.flickr.com/photos/alexeiz]
"Though we live in trying times, we're the ones who have to try"
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/cascavel-pm/attachments/20080811/dc113721/attachment-0001.html>


Mais detalhes sobre a lista de discussão Cascavel-pm