Steve,
I made the correction as follows:
if (/\bUP\b/ && /$server_name/) Does not work.
I also tried:
if (/$server_name/) Does not work.
And:
if (/\b$server_name\b/) Does not work.
I have checked that the variable $server_name is defined but it seems like the compare
is not working.
Here is the modified script. I still think that there is a loop and or logic problem.
#!/usr/bin/perl
open (listfile, "wuglist.txt") || die "$!\n";
open (outlogfile, ">newlog.log") || die "$!\n";
@lines = <inlogfile>;
@list = <listfile>;
foreach $server_name (@list) {
chomp ($server_name);
print "Processing $server_name\n";
open (inlogfile, "WUGEvent.log") || die "$!\n";
@lines = <inlogfile>;
foreach (@lines){
chomp;
if (/\bUP\b/ && /\b$server_name\b/) {
s/\t+/|/g;
s/missed //g;
print "$_\n";
}
close inlogfile;
}
}
close listfile;
close outlogfile;
Thanks,
Craig
>>> Steve Aaron <[EMAIL PROTECTED]> 11/26/01 07:55AM >>>
Try
if (/\bUP\b/ && /$server_name/)
You are not matching on $server_name as $server_name is not enclosed by the
match operator. You could easily put this in a single regular expression if
the position of $server_name is predictable. e.g. It alway falls after UP.
If you cannot predict where the server name falls then it will be more
efficient to put the text that occurs least frequently on the left of the &&
as the right-hand side is only evaluated if the left-hand expression returns
true.
Steve Aaron
-----Original Message-----
From: Craig Sharp [mailto:[EMAIL PROTECTED]]
Sent: Monday, November 26, 2001 12:45 PM
To: [EMAIL PROTECTED]
Cc: [EMAIL PROTECTED]
Subject: [Perl-unix-users] Script Help Please
Hi all,
I am lost. I have the following script that opens the log file WUGEvent.log
and looks for the statment "UP", replaces spaces and writes out the new log
file. It works great!
Here is the problem. I need to read in another file (wuglist.txt)
containing a list of server names and then compare each name to the line
currently being processed. Then if it matches, write the line out to a new
file following the conversion.
I tried to read the server name from the file into a variable and add a &&
to the reg expression looking for UP but it did not work:
if (/\bUP\b/ && $server_name)
I am lost in how to setup the loop and compare.
Thanks,
Here is the script and sample log files:
#!/usr/bin/perl
#---------------------------------------------------------------------------
-----------
# log_convert.pl script
#---------------------------------------------------------------------------
-----------
open (inlogfile, "WUGEvent.log") || die "$!\n";
open (outlogfile, ">newlog.log") || die "$!\n";
@lines = <inlogfile>;
select outlogfile;
foreach (@lines) {
chomp;
if (/\bUP\b/) {
s/\t+/|/g;
s/missed //g;
print "$_\n";
}
}
close inlogfile;
close outlogfile;
—---------------------------------------------------------------------------
---------
Sample WUGEvent.log
20011022 143423 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Derrick (pager)
20011022 143430 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Craig's e-mail
20011022 143430 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Craig's pager
20011022 143430 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Dave's pager
20011022 143431 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Help Desk
20011022 143514 C:\Program Files\WhatsUp\b31.wup UP
roush_31 10.31.1.1 missed 4
20011022 143515 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Beryl (e-mail)
20011022 143515 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Bethany (e-mail)
20011022 143516 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Dale (e-mail)
20011022 143516 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Derrick (e-mail)
20011022 143516 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Help Desk
20011022 143517 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Dave's pager
20011022 143517 C:\Program Files\WhatsUp\b31.wup Alert
successful process N:roush_31 F:768 A:SMTPMail/Derrick (pager)
20011022 143524 C:\Program Files\WhatsUp\B07.wup UP
roushftp1 208.44.92.201 missed 4
20011022 143525 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Craig's e-mail
20011022 143525 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Craig's pager
20011022 143526 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Dave's pager
20011022 143526 C:\Program Files\WhatsUp\B07.wup Alert
successful process N:roushftp1 F:768 A:SMTPMail/Help Desk
20011022 144058 C:\Program Files\WhatsUp\B09.wup DOWN
roush_ap 199.179.57.7 Host Unreachable
—---------------------------------------------------------------------------
----
Sample newlog.log
20010930 042501 C:\Program Files\WhatsUp\B07_NT.wup UP liv7-app1 200.1.1.18
2
20010930 042501 C:\Program Files\WhatsUp\B07_NT.wup UP liv7-app5 200.1.1.15
2
20010930 042501 C:\Program Files\WhatsUp\B07_NT.wup UP liv7-app2 200.1.1.12
2
20010930 042701 C:\Program Files\WhatsUp\B07_NT.wup UP liv-acct 200.1.1.11 3
20010930 182519 C:\Program Files\WhatsUp\b41.wup UP fsnsusan 10.41.1.1 1
20010930 182519 C:\Program Files\WhatsUp\b41.wup UP rsg01 10.41.1.10 1
20010930 182519 C:\Program Files\WhatsUp\b41.wup UP chaplin1 10.41.1.12 1
20010930 182519 C:\Program Files\WhatsUp\b41.wup UP ECOMMERC 10.41.1.11 1
—---------------------------------------------------------------------------
--
Sample wuglist.txt
machine_6
roush_app2
roush_liv7
roush_acct
roush_mail3
roush_domain
msnharry
roush_dhcp1
fs05431
roush_ap
fsnkelly
fsntammy
fsnralph
roush_31
fsnjacob
Craig A. Sharp
Unix Systems Administrator
DNS Administrator
Roush Industries
Office: 734-779-7282
Cell: 734-231-6769
Fax: 734-779-7807
[EMAIL PROTECTED]
====================================================
I have not lost my mind, it's backed up on tape somewhere!
====================================================
_______________________________________________
Perl-Unix-Users mailing list. To unsubscribe go to
http://listserv.ActiveState.com/mailman/subscribe/perl-unix-users
_______________________________________________
Perl-Unix-Users mailing list. To unsubscribe go to
http://listserv.ActiveState.com/mailman/subscribe/perl-unix-users