--- /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 )
+