Hello Perl Gurus,
I wrote a script to search for log suspends and
bloking processes in a text file and send me email if
it find either of them. My codes below work but it's
not efficent. As you can see I open the file and go to
while loop twice. Can someone suggest a better way?
Thanks.
(attached is the text file i open to search.)
Below is my codes:
#!/bin/perl -w
require "/home/sybase/tranl/pl/global.pl";
## Search for blocking process
open (FILE,"<$whodo_out") or die ("Cannot open file:
$!");
while (my $line =<FILE>){
chomp($line);
$line =~ s/^\s+//;
next if ($line =~ /^\D/);
my $blk = substr($line,40,3);
print " $blk \n";
if ($blk != 0){
print 'Alert! Blocking processes';
system("/usr/bin/mailx -s 'Alert Blocking
Process' $receipients < $whodo_out");
}
print "\n $suspend \n";
#exit ;
}#end while
close (FILE);
# Search for LOG SUSPEND process
open (FILE,"<$whodo_out") or die ("Cannot open file:
$!");
while (my $line =<FILE>){
chomp($line);
$line =~ s/^\s+//;
next if ($line =~ /^\D/);
my $log_suspend = substr($line,70,11);
print "$log_suspend \n";
if ($log_suspend eq 'LOG SUSPEND'){
print 'Alert! LOG SUSPEND processes';
system("/usr/bin/mailx -s 'Alert LOG SUSPEND
Process' $receipients < $whodo_out");
}
}#end while
close FILE;
##
__________________________________
Do you Yahoo!?
Read only the mail you want - Yahoo! Mail SpamGuard.
http://promotions.yahoo.com/new_mail
spid status loginame hostname blk program dbname cmd
cpu io
------ ------------ ------------ ---------- ---- ---------------- -------
---------------- ------ ------------
2 sleeping NULL 0 master NETWORK
HANDLER 0 0
3 sleeping NULL 0 master DEADLOCK
TUNE 0 0
4 sleeping NULL 0 master MIRROR
HANDLER 0 0
5 sleeping NULL 0 <astc> master ASTC HANDLER 0
0
6 sleeping NULL 0 master CHECKPOINT
SLEEP 0 1502134
7 sleeping NULL 0 master HOUSEKEEPER
0 886596
8 sleeping NULL 18 master NETWORK
HANDLER 0 0
13 sleeping loader 0 Mills INSERT
2031 9872
16 recv sleep sa ASDECS04 0 Rapid SQL Mills AWAITING
COMMAND 1 0
18 running sa titania.ab 0 isql Mills SELECT
218 0
21 sleeping loader 0 Mills LOG SUSPEND
1930 0
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>