du-diff.py
author viric@llimona
Sat, 04 Nov 2006 20:21:59 +0100
changeset 0 7604c668419c
permissions -rwxr-xr-x
First version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
7604c668419c First version
viric@llimona
parents:
diff changeset
     1
#!/usr/bin/python
7604c668419c First version
viric@llimona
parents:
diff changeset
     2
7604c668419c First version
viric@llimona
parents:
diff changeset
     3
# It compares 'du' outputs from different dates, and shows the differences
7604c668419c First version
viric@llimona
parents:
diff changeset
     4
# in size between them.
7604c668419c First version
viric@llimona
parents:
diff changeset
     5
#
7604c668419c First version
viric@llimona
parents:
diff changeset
     6
# It output 4 columns: Change, Inc/decrement, Last size, Directory name
7604c668419c First version
viric@llimona
parents:
diff changeset
     7
# Change can be of 4 types:
7604c668419c First version
viric@llimona
parents:
diff changeset
     8
# * +, it means "increment in size"
7604c668419c First version
viric@llimona
parents:
diff changeset
     9
# * -, it means "decrement in size"
7604c668419c First version
viric@llimona
parents:
diff changeset
    10
# * N+, it means new directory, incrementing in size
7604c668419c First version
viric@llimona
parents:
diff changeset
    11
# * D-, it means deleted directory, decrementing in size
7604c668419c First version
viric@llimona
parents:
diff changeset
    12
7604c668419c First version
viric@llimona
parents:
diff changeset
    13
import sys,string
7604c668419c First version
viric@llimona
parents:
diff changeset
    14
7604c668419c First version
viric@llimona
parents:
diff changeset
    15
if len(sys.argv) != 3:
7604c668419c First version
viric@llimona
parents:
diff changeset
    16
	print "Wrong number of arguments."
7604c668419c First version
viric@llimona
parents:
diff changeset
    17
	sys.exit()
7604c668419c First version
viric@llimona
parents:
diff changeset
    18
7604c668419c First version
viric@llimona
parents:
diff changeset
    19
7604c668419c First version
viric@llimona
parents:
diff changeset
    20
du_first =  open(sys.argv[1],"r")
7604c668419c First version
viric@llimona
parents:
diff changeset
    21
du_second = open (sys.argv[2],"r")
7604c668419c First version
viric@llimona
parents:
diff changeset
    22
7604c668419c First version
viric@llimona
parents:
diff changeset
    23
usage_first= {}
7604c668419c First version
viric@llimona
parents:
diff changeset
    24
7604c668419c First version
viric@llimona
parents:
diff changeset
    25
for line in du_first:
7604c668419c First version
viric@llimona
parents:
diff changeset
    26
	elements = line.rstrip().split("\t",1)
7604c668419c First version
viric@llimona
parents:
diff changeset
    27
	usage_first[elements[1]] = int(elements[0])
7604c668419c First version
viric@llimona
parents:
diff changeset
    28
7604c668419c First version
viric@llimona
parents:
diff changeset
    29
du_first.close()
7604c668419c First version
viric@llimona
parents:
diff changeset
    30
7604c668419c First version
viric@llimona
parents:
diff changeset
    31
7604c668419c First version
viric@llimona
parents:
diff changeset
    32
usage_second = usage_first
7604c668419c First version
viric@llimona
parents:
diff changeset
    33
for line in du_second:
7604c668419c First version
viric@llimona
parents:
diff changeset
    34
	elements = line.rstrip().split("\t",1)
7604c668419c First version
viric@llimona
parents:
diff changeset
    35
	elements[0] = int(elements[0])
7604c668419c First version
viric@llimona
parents:
diff changeset
    36
	if usage_first.has_key(elements[1]):
7604c668419c First version
viric@llimona
parents:
diff changeset
    37
		if usage_first[elements[1]] > elements[0]:
7604c668419c First version
viric@llimona
parents:
diff changeset
    38
			print "-\t%d\t%d\t%s" % ( usage_first[elements[1]] - elements[0],elements[0], elements[1] )
7604c668419c First version
viric@llimona
parents:
diff changeset
    39
		elif usage_first[elements[1]] < elements[0]:
7604c668419c First version
viric@llimona
parents:
diff changeset
    40
			print "+\t%d\t%d\t%s" % ( elements[0] - usage_first[elements[1]], elements[0], elements[1] )
7604c668419c First version
viric@llimona
parents:
diff changeset
    41
7604c668419c First version
viric@llimona
parents:
diff changeset
    42
		del usage_second[elements[1]]
7604c668419c First version
viric@llimona
parents:
diff changeset
    43
	else:
7604c668419c First version
viric@llimona
parents:
diff changeset
    44
			print "N+\t%d\t%d\t%s" % ( elements[0] , elements[0] ,elements[1] )
7604c668419c First version
viric@llimona
parents:
diff changeset
    45
7604c668419c First version
viric@llimona
parents:
diff changeset
    46
du_second.close()
7604c668419c First version
viric@llimona
parents:
diff changeset
    47
for key in usage_second.keys():
7604c668419c First version
viric@llimona
parents:
diff changeset
    48
			print "D-\t%d\t%d\t%s" % ( usage_second[key] , usage_second[key], key )
7604c668419c First version
viric@llimona
parents:
diff changeset
    49