#!/usr/bin/python3 import sys, os MB=1048576 MAX=10240*MB/8 WARN=100 CRIT=100 if len(sys.argv)>2: MAX=int(sys.argv[2])*MB/8 if len(sys.argv)>4: WARN=int(sys.argv[3]) CRIT=int(sys.argv[4]) DIR="/sys/class/net/%s/statistics" % sys.argv[1] arr={} for val in os.listdir(DIR): arr[val]=int(open(os.path.join(DIR,val), 'rt').read()) def add(name, suffix=''): return ( "rx_%s=%d%s tx_%s=%d%s" \ % (name, arr['rx_'+name], suffix, name, arr['tx_'+name], suffix) ) print(' '.join([ "OK|collisions=%sc;1;10;0;%d" % (arr['collisions'], MAX), add('bytes', "c;%d;%d;0;%d" % (MAX*WARN/100, MAX*CRIT/100, MAX) ), add('packets', "c;;;0;%d" % MAX), add('errors', "c;1;10;0;%d" % MAX), add('dropped', "c;1;10;0;%d" % MAX) ])) sys.exit(0)