Juan,
It is difficult to read your code when it is not formatted for this website. Could you please wrap your code in code tags, like: <code></code>?
I have made an attempt to reconstruct your code from what you have provided. I think your code looks like this, but please verify:
Updated:#!/usr/local/bin/perl # Program to check /var/log/messeges for alerts contining the word IDS + and send mails # in case the word is found- including the line use strict; use warnings; use Mail::Mailer; open (INFO, "/var/log/messages"); # Open the file while { @message = <INFO> / IDS/g # Read it into an array @message = $& $mailer = Mail::Mailer->new("smtp", "10.83.27.71"); $mailer->open( 'From' => 'Syslog <syslog@hpda.com.ar>', 'To' => 'gabriela pinado <gabriela.pinado@hpda.com.ar>', 'Subject' => 'PiX Detected Attack ' ); print $mailer <<@message; close($mailer) or die "can't close mailer: $!";
Here is my revised version:
#!/usr/local/bin/perl use strict; use warnings; use Mail::Mailer; my $mailer = Mail::Mailer->new("smtp", "10.83.27.71"); open (INFO, "/var/log/messages"); while (my $message = <INFO>) { next unless $message =~ / IDS/; $mailer->open( 'From' => 'Syslog <syslog@hpda.com.ar>', 'To' => 'gabriela pinado <gabriela.pinado@hpda.com.ar>', 'Subject' => 'PiX Detected Attack ' ); print $mailer $message; $mailer->close() or die "can't close mailer: $!"; } close INFO;
From what I can tell, I think this should have the desired result you are looking for.
In reply to Re: pattern matching and sending mail!
by thezip
in thread pattern matching and sending mail!
by juanb007
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |