#!/usr/bin/env python """ notfounds.py - Get not founds from server logs. Author: Sean B. Palmer, inamidst.com Date: 2004-06 License: GPL 2; share and enjoy! Todo: @@ Use optparse @@ Allow --number and --count """ import sys, re r_nfs = re.compile(r'"(?:GET|HEAD|POST) (\S+) HTTP/[\d\.]+" 404') def getNfs(fn): f = open(fn) result = {} while 1: line = f.readline() if not line: break m = r_nfs.search(line) if m: path = m.group(1) if result.has_key(path): result[path] += 1 else: result[path] = 1 f.close() result = [(count, path) for (path, count) in result.items()] result.sort() result.reverse() for (count, path) in result: print '%s: %s' % (count, path) def main(args=None): if args is None: args = sys.argv[1:] if len(args) == 1: getNfs(args[0]) else: print __doc__ if __name__=="__main__": main()