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