Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

Re: Parsing Apache Log to Get Most Recent File Access

by enoch (Chaplain)
on Nov 26, 2002 at 19:36 UTC ( #215910=note: print w/replies, xml ) Need Help??

in reply to Parsing Apache Log to Get Most Recent File Access

++'s all around!

cLive ;-)'s solution worked with a couple of minor tweaks. Here is the final working version.

#!/usr/bin/perl use warnings; use strict; use Date::Manip; use vars qw(%ipHash); my $order=0; while(<DATA>) { / ^((\d{1,3}\.){3}\d{1,3}) # grab the IP address into $1 \s\-\s\-\s\[ (\d\d\/\w{3}\/\d\d(\d\d\:){3}\d\d) # grab the date into $3 \s\-\d{4}\]\s"\w{1,4}\s ([\/|\w|\.|_]+) # grab the file path into $5 /x; $ipHash{$1}{'order'} = $order++; $ipHash{$1}{'path'} = $5; $ipHash{$1}{'date'} = $3; $ipHash{$1}{'timestamp'} = &UnixDate($3,"%s"); } for (sort { $ipHash{$a}{'order'} <=> $ipHash{$b}{'order'}; } keys %ipH +ash) { print "$_ => $ipHash{$_}{'date'}\t$ipHash{$_}{'path'}\n"; }
Notice, the only things that were changed from cLive ;-)'s version was the $a's in the final print statement had to be changed to $_, and that the 'date' hash element held the nicely formatted date instead of the Unix timestamp.

Thanks, everyone!


Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://215910]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (12)
As of 2018-03-20 14:10 GMT
Find Nodes?
    Voting Booth?
    When I think of a mole I think of:

    Results (253 votes). Check out past polls.