# HG changeset patch # User viric@llimona # Date 1162668119 -3600 # Node ID 7604c668419ccc0dab4f367d25fcf43c473dd314 First version diff -r 000000000000 -r 7604c668419c du-diff.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/du-diff.py Sat Nov 04 20:21:59 2006 +0100 @@ -0,0 +1,49 @@ +#!/usr/bin/python + +# It compares 'du' outputs from different dates, and shows the differences +# in size between them. +# +# It output 4 columns: Change, Inc/decrement, Last size, Directory name +# Change can be of 4 types: +# * +, it means "increment in size" +# * -, it means "decrement in size" +# * N+, it means new directory, incrementing in size +# * D-, it means deleted directory, decrementing in size + +import sys,string + +if len(sys.argv) != 3: + print "Wrong number of arguments." + sys.exit() + + +du_first = open(sys.argv[1],"r") +du_second = open (sys.argv[2],"r") + +usage_first= {} + +for line in du_first: + elements = line.rstrip().split("\t",1) + usage_first[elements[1]] = int(elements[0]) + +du_first.close() + + +usage_second = usage_first +for line in du_second: + elements = line.rstrip().split("\t",1) + elements[0] = int(elements[0]) + if usage_first.has_key(elements[1]): + if usage_first[elements[1]] > elements[0]: + print "-\t%d\t%d\t%s" % ( usage_first[elements[1]] - elements[0],elements[0], elements[1] ) + elif usage_first[elements[1]] < elements[0]: + print "+\t%d\t%d\t%s" % ( elements[0] - usage_first[elements[1]], elements[0], elements[1] ) + + del usage_second[elements[1]] + else: + print "N+\t%d\t%d\t%s" % ( elements[0] , elements[0] ,elements[1] ) + +du_second.close() +for key in usage_second.keys(): + print "D-\t%d\t%d\t%s" % ( usage_second[key] , usage_second[key], key ) +