#!/usr/bin/perl use strict; use warnings; use Carp; use File::Monitor; $| = 1; my $monitor = File::Monitor->new; push @ARGV, '.' unless @ARGV; while ( my $obj = shift ) { $monitor->watch( { name => $obj, recurse => 1 } ); } sub sendEmail { my ($to, $from, $subject, $message) = @_; my $sendmail = '/usr/lib/sendmail'; open(MAIL, "|$sendmail -oi -t"); print MAIL "From: $from\n"; print MAIL "To: $to\n"; print MAIL "Subject: $subject\n\n"; print MAIL "$message\n"; close(MAIL); } while ( 1 ) { my $val; sleep 1; my $time = localtime(); for my $change ( $monitor->scan ) { print $change->name, " changed\n"; my @val = $change->files_created; $val = join( ' ', @val ); if ( $val ) { printf( " %s\n", $val ); sendEmail("venkatesh.reddy\@us.fijistu.com","venkatesh.reddy\@us.fijistu.com","file creation","$val created at $time.." ); } xxxx : if($val =~ /(run.*\.log)$/){ print "log name: $1\n"; open(my $fh, "$1"); while(<$fh>) { if($_=~/failed/) { print "$_\n"; } } close($fh); } } }