32 lines
770 B
Python
Executable file
32 lines
770 B
Python
Executable file
#!/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)
|