26 lines
601 B
Python
26 lines
601 B
Python
#!/usr/bin/env python3
|
|
|
|
from subprocess import check_output
|
|
|
|
|
|
WARN_AT=80
|
|
CRITICAL_AT=90
|
|
output = []
|
|
exitcode = 0
|
|
|
|
for line in check_output(['/usr/sbin/zpool', 'list', '-Hpo', 'name,size,alloc']).decode().splitlines():
|
|
pool, size, alloc = line.split('\t')
|
|
used_percent = int(int(alloc)/int(size)*100)
|
|
|
|
if used_percent > CRITICAL_AT:
|
|
exitcode = max(exitcode, 2)
|
|
elif used_percent > WARN_AT:
|
|
exitcode = max(exitcode, 1)
|
|
|
|
if used_percent > WARN_AT:
|
|
output.append(
|
|
f'{pool} is {used_percent}% full'
|
|
)
|
|
|
|
print('\n'.join(output))
|
|
exit(exitcode)
|