#!/usr/bin/env python import subprocess import sys CRIT = 90.0 MOUNT_BLACKLIST = ['/dev', '/efi', '/proc', '/run', '/sys', '/tmp'] def main(): output = subprocess.check_output([ 'sh', '-c', 'df -a -B 1 | awk \'{ printf "%s\\t%d\\t%d\\n", $6, $2, $4 }\'' ]).decode('utf-8') fs = {} for line in output.split('\n'): if len(line) == 0 or line[0] != '/': continue (mountpoint, total, available) = line.split('\t') fs[mountpoint] = (total, available) color = '#50fa7b' strings = [] for mount, data in fs.items(): skip = False for b in MOUNT_BLACKLIST: if mount.startswith(b): skip = True if skip: continue usage = 0.0 if float(data[0]) > 0.0: usage = (1 - float(data[1])/float(data[0])) * 100.0 if usage > CRIT: color = '#dd0000' strings.append('{}: {:.0f}%'.format( mount, color, usage, )) print('\ufaed '+' '.join(strings)) if __name__ == '__main__': main()