du-diff.py
author viric@llimona
Sat, 04 Nov 2006 20:21:59 +0100
changeset 0 7604c668419c
permissions -rwxr-xr-x
First version

#!/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 )