Apache Log Quick Summary
Sometimes I set up a quick site for a client and want to summarize hits without setting up awstats. So, I wrote a quick and dirty script to sum up the hits per day in Apache’s access_log file.
Example:
$ cklog access_log
04-15-2007: 21
04-16-2007: 2134
04-17-2007: 304
04-18-2007: 6960
04-19-2007: 951
04-20-2007: 412
Here’s the script:
[ruby]
require ‘date’
daily = Hash.new
File.open(ARGV[0] || “access_log”, “r”) do |file|
while line = file.gets
if line =~ /(\d{2}\/\w{3}\/\d{4}).*GET\s([^\?\s]+)/
date = Date.strptime $1, ‘%d/%b/%Y’
daily[date] = 0 if daily[date].nil?
daily[date] + 1
end
end
end
daily.sort.each {|d, f|
puts “#{d.strftime ‘%m-%d-%Y’}: #{f}”
}
[/ruby]




