#!/usr/bin/env ruby require 'pry' root = '/var/www/oddb.org' yesterday = Date.today-1 pattern = "#{root}/log/#{yesterday.year}/#{sprintf('%02d', yesterday.month)}/#{sprintf('%02d', yesterday.day)}/*log" log_files = Dir.glob(pattern) errors = {} restarts = {} log_files.each do|log| count = `grep -c show_exceptions.rb #{log}`.chomp.to_i errors [log] = count nr_restarts = `grep -c Exiting #{log}`.chomp.to_i restarts [log] = nr_restarts end puts "Results for the #{yesterday}. Analysing #{log_files.size} logfiles matching #{pattern}" puts "----------------------------" puts "Exceptions" errors.sort{|left,right| right[1] <=> left[1] }.each do |log,count| next if count == 0 puts "#{sprintf('%5d', count)} errors in #{sprintf('%55s', log)} (#{sprintf('%6d', (File.size(log)/1024).to_i)} kB)" end puts "----------------------------" puts "Restarts" restarts.sort{|left,right| right[1] <=> left[1] }.each do |log,count| next if count == 0 puts "#{sprintf('%5d', count)} restarts in #{log}" end puts "----------------------------"