Project

General

Profile

Download (2.92 KB) Statistics
| Branch: | Tag: | Revision:
116866cd dsorber
#!/usr/bin/python
import os
import subprocess
import sys

PURPLE = '\033[95m'
CYAN = '\033[96m'
DARKCYAN = '\033[36m'
BLUE = '\033[94m'
GREEN = '\033[92m'
YELLOW = '\033[93m'
RED = '\033[91m'
BOLD = '\033[1m'
UNDERLINE = '\033[4m'
END = '\033[0m'

def make_bold(string):
ff7733eb David Sorber
return '{:s}{:s}{:s}'.format(BOLD, string, END)
116866cd dsorber
def get_ipv4_addr(interface):
ff7733eb David Sorber
cmd = 'ifconfig {:s}'.format(interface)
for line in subprocess.check_output(cmd, shell=True).split('\n'):
05f679d0 David Sorber
if line.strip().startswith('inet '):
return line.split()[1]
ff7733eb David Sorber
else:
return '{:s}NO IP ASSIGNED{:s}'.format(RED, END)
116866cd dsorber
def get_fs_usage(mount_point):
ff7733eb David Sorber
cmd = 'df -h | grep {:s}'.format(mount_point)
try:
line = subprocess.check_output(cmd, shell=True).split('\n')[0]
except IndexError:
return '{:s}MOUNT POINT NOT FOUND{:s}'.format(RED, END)
line_tokens = line.split()
ad7699cb David Sorber
usage_percent = int(line_tokens[4][:-1])
05f679d0 David Sorber
percent_str = '{:s}{:>3d}%{:s}'.format(BOLD, usage_percent, END)
ad7699cb David Sorber
if usage_percent > 90:
05f679d0 David Sorber
percent_str = '{:s}{:s}{:>3d}%{:s}'.format(BOLD, RED, usage_percent, END)
ad7699cb David Sorber
elif usage_percent > 70:
05f679d0 David Sorber
percent_str = '{:s}{:s}{:>3d}%{:s}'.format(BOLD, YELLOW, usage_percent, END)
ad7699cb David Sorber
ff7733eb David Sorber
output = '{:10s} ({:<9s}) - {:>4s} of {:>4s} [ {:s} ] used; '\
'{:>4s} available'.format(line_tokens[5], line_tokens[0],
line_tokens[2], line_tokens[1],
ad7699cb David Sorber
percent_str, line_tokens[3])
ff7733eb David Sorber
return output
116866cd dsorber

def main():
ff7733eb David Sorber
""" This is a custom script I wrote to run on at login on phalanx
and give me some system overview information.
"""
116866cd dsorber
ff7733eb David Sorber
rows, columns = os.popen('stty size', 'r').read().split()
rows = int(rows)
columns = int(columns)
116866cd dsorber
ff7733eb David Sorber
hostname = subprocess.check_output('hostname', shell=True).strip()
116866cd dsorber
5ff1de98 David Sorber
ip_addr = get_ipv4_addr('enp4s0')
0761d1b8 David Sorber
root_stats = get_fs_usage('/dev/sda2')
ff7733eb David Sorber
storage_stats = get_fs_usage('/dev/md0')
116866cd dsorber
ad7699cb David Sorber
print YELLOW + BOLD + ' _ _ '
ff7733eb David Sorber
print ' | | | | '
print ' _ __ | |__ __ _| | __ _ _ __ __ __'
print "| '_ \| '_ \ / _` | |/ _` | '_ \\ \/ /"
print '| |_) | | | | (_| | | (_| | | | |> < '
print "| .__/|_| |_|\__,_|_|\__,_|_| |_/_/\_\ "
print '| | '
ad7699cb David Sorber
print '|_| ' + END
print PURPLE + BOLD + '-' * columns + END
print
ff7733eb David Sorber
print '{:<17s} {:s} {:s} {:s}'.format(make_bold('Hostname:'), hostname,
make_bold('IP:'), ip_addr)
print '{:<17s} {:s}'.format(make_bold('Storage:'), root_stats)
print '{:<17s} {:s}'.format(make_bold(' '), storage_stats)
ad7699cb David Sorber
print
116866cd dsorber
ad7699cb David Sorber
print PURPLE + BOLD + '-' * columns + END
print
ff7733eb David Sorber
print subprocess.check_output('w -i', shell=True)
ad7699cb David Sorber
print PURPLE + BOLD + '-' * columns + END
ff7733eb David Sorber
print
116866cd dsorber
if __name__ == '__main__':
ff7733eb David Sorber
sys.exit(main())