Steven_Koch= {:language=>( 'Perl', 'Java', 'PHP', 'RoR', 'ASP', 'outras...' )}

segunda-feira, dezembro 19, 2005

Robot


Fiz este robot em Perl para verificar os domínios que sou responsavel. Coloquei ele para executar em um daemon ou Task todo o dia. Caso não responda algum domínio listado no arquivo listaURL.txt ele retorna um erro informando o domínio que ocorreu o erro ou então envia um e-mail informando que esta tudo OK. Peço desculpas pela estrutura.

Atualizado para não verificar linhas que tem ; no frente




#!/usr/bin/perl
#***********************************
#
# ROBOT QUE VERIFICA OS DOMINIOS GRAVADOS NO
# ARQUIVO listaURL.txt
# CRIADO EM 8/2005 - POR STEVEN
#
#
#***********************************
require LWP::UserAgent;
print "Verificando dominios...\n\n";
my $da = scalar localtime; #PEGA A DATA DE HOJE

my $flag_ok = 1;
my $dominios = "";

my $ua = LWP::UserAgent->new; #CRIA O OBJ USER AGENT
$ua->timeout(20); #SETA O TEMPO MAXIMO DE ESPERA PELA RESPOSTA
$ua->env_proxy; #PASSA POR ROXY SE HOUVER

#abre arq e verifica cada linha com o dominio

open(ARQU, "D:\\webspace\\wwwroot\\sistemaintranet\\Robot\\verificadominios\\listaURL.txt") or die "Não foi possivel abrir arquivo";

while(<ARQU>){
unless(m\^;\){ #Os dominios marcados com ; não serão verificados
my $response = $ua->get($_); #PINGA NO SITE E RECOLHE O CABEÇALHO
if ($response->is_success){ #VERIFICA SE HOUVE A CONEXÃO E NÃO HA ERRO
print "Dominio: $_\n = OK:\n";
}else{
print "Dominio: $_\n = ERRO:\n";
enviaemail('emailadmin@meudominio.com',"Erro no dominio: $_", "Foi constatado um erro ao aceder o dominio $_\nData: $da");
$flag_ok = 0;
}
}
}

close(ARQU);

if($flag_ok == 1){
enviaemail('r.pestana@brindestorm.com',"Verificação dos dominios OK", "Todos os dominios responderam com sucesso.\n\nData: $da");
}

#função para envia e-mail
sub enviaemail(){
use Mail::SendEasy ;
my $mail = new Mail::SendEasy(
smtp => 'meuservermail' ,
user => 'meunoedeusuario' ,
pass => 'minhapassword' ,
) ;


my $status = $mail->send(
from => 'robotverificadominio@meudominio.com' ,
from_title => 'robotverificadominio@meudominio.com' ,
reply => "$_[0]" ,
error => "$_[0]" ,
to => "$_[0]" ,
msg => "$_[2]" ,
subject => "$_[1]" ,
msgid => "0101" ,
) ;
}

sexta-feira, dezembro 16, 2005


Lua... Portugal 2005


Esta foto foi tirada ao pé do edifício que moramos.