34 lines
		
	
	
		
			954 B
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			954 B
		
	
	
	
		
			Python
		
	
	
	
#!/usr/bin/env python
 | 
						|
 | 
						|
"""This collects filesystem capacity info using the 'df' command. Tuples of
 | 
						|
filesystem name and percentage are stored in a list. A simple report is
 | 
						|
printed. Filesystems over 95% capacity are highlighted. Note that this does not
 | 
						|
parse filesystem names after the first space, so names with spaces in them will
 | 
						|
be truncated. This will produce ambiguous results for automount filesystems on
 | 
						|
Apple OSX. """
 | 
						|
 | 
						|
import pexpect
 | 
						|
 | 
						|
child = pexpect.spawn('df')
 | 
						|
 | 
						|
# parse 'df' output into a list.
 | 
						|
pattern = "\n(\S+).*?([0-9]+)%"
 | 
						|
filesystem_list = []
 | 
						|
for dummy in range(0, 1000):
 | 
						|
    i = child.expect([pattern, pexpect.EOF])
 | 
						|
    if i == 0:
 | 
						|
        filesystem_list.append(child.match.groups())
 | 
						|
    else:
 | 
						|
        break
 | 
						|
 | 
						|
# Print report
 | 
						|
print
 | 
						|
for m in filesystem_list:
 | 
						|
    s = "Filesystem %s is at %s%%" % (m[0], m[1])
 | 
						|
    # highlight filesystems over 95% capacity
 | 
						|
    if int(m[1]) > 95:
 | 
						|
        s = '! ' + s
 | 
						|
    else:
 | 
						|
        s = '  ' + s
 | 
						|
    print s
 |