Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Getting Log File for Current/Last Week

by LostS (Friar)
on Nov 14, 2002 at 14:09 UTC ( [id://212839]=perlquestion: print w/replies, xml ) Need Help??

LostS has asked for the wisdom of the Perl Monks concerning the following question:

OK here is what I am doing. I have WebAlizer and I need to run it against many server's against the logs. Now I wrote this:
#### Web 1 ##### $directory = "I\:\\logs\\iis\\W3SVC1\\"; opendir DIR, $directory or die "Couldn't open $directory : $!\n"; @files = readdir( DIR ) or die "Couldn't read from $directory : $!\n"; closedir( DIR ); @files = grep {/\.log$/} @files; foreach $line (@files) { system("C:\\webalizer\\webalizer -c C:\\webalizer\\web1.conf $dire +ctory$line"); }
Now that was to just get the initial start of all the logs. Now I need to modify it to get the last log. My log files are Weekly or Monthly. So like my logs will look like nc0211.log for monthly and nc021103.log for weekly. Can anyone help me determine how to grep/read only the last log. I would say the last modified but by time the script runs the server might have started a new one. Any suggestions??

-----------------------
Billy S.
Slinar Hardtail - Guildless
Datal Ephialtes - Guildless
RallosZek.Net Admin/WebMaster

perl -e '$cat = "cat"; if ($cat =~ /\143\x61\x74/) { print "Its a cat! +\n"; } else { print "Thats a dog\n"; } print "\n";'

Replies are listed 'Best First'.
Re: Getting Log File for Current/Last Week
by LostS (Friar) on Nov 14, 2002 at 19:33 UTC
    OK I figured it out... Doing a last mod time.
    open (OLDTIME, "time.txt"); $time = <OLDTIME>; close(OLDTIME); #### Web 1 ##### $directory = "I\:\\logs\\iis\\W3SVC1\\"; opendir DIR, $directory or die "Couldn't open $directory : $!\n"; @files = readdir( DIR ) or die "Couldn't read from $directory : $!\n"; closedir( DIR ); @files = grep {/\.log$/} @files; foreach $line (@files) { $modtime = (stat("$directory$line"))[9]; if ($modtime > $time) { system("C:\\webalizer\\webalizer -c C:\\webalizer\\web1.conf $ +directory$line"); } } $nowtime = time(); open (TIME, ">time.txt"); print TIME "$nowtime"; close(TIME);
    Seems to work pretty good.

    -----------------------
    Billy S.
    Slinar Hardtail - Hand of Dane
    Datal Ephialtes - Guildless
    RallosZek.Net Admin/WebMaster

    perl -e '$cat = "cat"; if ($cat =~ /\143\x61\x74/) { print "Its a cat! +\n"; } else { print "Thats a dog\n"; } print "\n";'

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://212839]
Approved by mce
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (4)
As of 2024-04-25 05:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found