ssh-wrapper.py 815 B

123456789101112131415161718192021222324252627282930
  1. #!/usr/bin/env python
  2. import os
  3. import re
  4. import shlex
  5. import subprocess
  6. import sys
  7. allowed = [
  8. r'^/usr/bin/lsb_release\s+-d$',
  9. r'^/usr/lib/nagios/plugins/check_disk -w \d+% -c \d+% -p /[/a-z]*$',
  10. r'^/usr/lib/nagios/plugins/check_load -w \d+(,\d+,\d+)? -c \d+(,\d+,\d+)?$',
  11. r'^/usr/lib/nagios/plugins/check_mysql -u [a-z]+ -p [0-9a-zA-Z]+',
  12. r'^/usr/lib/nagios/plugins/check_mysql_health --user(name)?=[a-z]+ --pass(word)?=[0-9a-zA-Z]+ --mode=[a-z-]+$',
  13. ]
  14. #cmdline = ' '.join(sys.argv[1:])
  15. cmdline = os.getenv('SSH_ORIGINAL_COMMAND')
  16. for maybe in allowed:
  17. if re.match(maybe, cmdline):
  18. cmdline = shlex.split(cmdline)
  19. cmd = subprocess.Popen(cmdline, stdout=subprocess.PIPE)
  20. print cmd.communicate()[0].rstrip()
  21. sys.exit(cmd.returncode)
  22. print '%s: No command found!' % sys.argv[0]
  23. sys.exit(3)