--- Ramprasad A Padmanabhan
<[EMAIL PROTECTED]> wrote:

> On Mon, 2004-10-11 at 06:26, loan tran wrote:
> > 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;
> > 
> > ##
> 
> 
> 
> I am not able to get it ? 
> Why cant you put This inside your first while loop 
> 

>   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");
>     }
> 
> 
> 
> 
> Probably after 
> "print "\n $suspend \n";"
> 
> 
> Bye
> Ram

I have tried your suggestion. Howerver, result i got
is only the first if run ( reciveice only blocking
email).

In my first post I forget a "last" statement in each
if. (b/c I dont want to receive multible emails if
there are multily blocking or suspending procecess.) 

So here is the code again:


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);
    if ($blk != 0){
        print "Alert Blocking processes\n";
        system("/usr/bin/mailx -s 'Alert BLOCKING
Process' $receipients < $whodo_out");
        last; 
    }
   
}#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);
    if ($log_suspend eq 'LOG SUSPEND'){
        print "Alert! LOG SUSPEND processes\n";
        system("/usr/bin/mailx -s 'Alert LOG SUSPEND
Process' $receipients < $whodo_out");
        last;
    }
  }#end while

  close FILE;

> 
> 
> 
> -- 
> To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> For additional commands, e-mail:
> [EMAIL PROTECTED]
> <http://learn.perl.org/>
> <http://learn.perl.org/first-response>
> 
> 
> 



                
__________________________________
Do you Yahoo!?
Yahoo! Mail Address AutoComplete - You start. We finish.
http://promotions.yahoo.com/new_mail 

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to