32 lines
770 B
Plaintext
32 lines
770 B
Plaintext
|
#!/usr/bin/env python3
|
||
|
import argparse
|
||
|
import sys
|
||
|
|
||
|
parser = argparse.ArgumentParser()
|
||
|
parser.add_argument('-w', '--warning',
|
||
|
help='Warning threashold',
|
||
|
required=True)
|
||
|
parser.add_argument('-c', '--critical',
|
||
|
help='Critical threashold',
|
||
|
required=True)
|
||
|
|
||
|
args = parser.parse_args()
|
||
|
warning = int(args.warning)
|
||
|
critical = int(args.critical)
|
||
|
|
||
|
with open('/proc/uptime', 'r') as f:
|
||
|
uptime_seconds = float(f.readline().split()[0])
|
||
|
days = int(uptime_seconds / 86400)
|
||
|
|
||
|
status = "OK"
|
||
|
exit = 0
|
||
|
if days > warning:
|
||
|
status = "WARNING"
|
||
|
exit = 1
|
||
|
if days > critical:
|
||
|
status = "CRITICAL"
|
||
|
exit = 2
|
||
|
|
||
|
print(f"{status}: uptime {days} days | uptime={days};{warning};{critical};")
|
||
|
sys.exit(exit)
|