ssh-wrapper-for-monitoring/ssh-wrapper.py

31 lines
815 B
Python
Raw Normal View History

2017-11-29 10:56:36 +00:00
#!/usr/bin/env python
import os
import re
import shlex
import subprocess
import sys
allowed = [
r'^/usr/bin/lsb_release\s+-d$',
r'^/usr/lib/nagios/plugins/check_disk -w \d+% -c \d+% -p /[/a-z]*$',
r'^/usr/lib/nagios/plugins/check_load -w \d+(,\d+,\d+)? -c \d+(,\d+,\d+)?$',
r'^/usr/lib/nagios/plugins/check_mysql -u [a-z]+ -p [0-9a-zA-Z]+',
r'^/usr/lib/nagios/plugins/check_mysql_health --user(name)?=[a-z]+ --pass(word)?=[0-9a-zA-Z]+ --mode=[a-z-]+$',
]
#cmdline = ' '.join(sys.argv[1:])
cmdline = os.getenv('SSH_ORIGINAL_COMMAND')
for maybe in allowed:
if re.match(maybe, cmdline):
cmdline = shlex.split(cmdline)
cmd = subprocess.Popen(cmdline, stdout=subprocess.PIPE)
print cmd.communicate()[0].rstrip()
sys.exit(cmd.returncode)
print '%s: No command found!' % sys.argv[0]
sys.exit(3)