+++ /dev/null
-#!/usr/bin/env python
-
-"""This runs Apache Status on the remote host and returns the number of requests per second.
-
-./astat.py [-s server_hostname] [-u username] [-p password]
- -s : hostname of the remote server to login to.
- -u : username to user for login.
- -p : Password to user for login.
-
-Example:
- This will print information about the given host:
- ./astat.py -s www.example.com -u mylogin -p mypassword
-
-"""
-
-import os, sys, time, re, getopt, getpass
-import traceback
-import pexpect, pxssh
-
-def exit_with_usage():
-
- print globals()['__doc__']
- os._exit(1)
-
-def main():
-
- ######################################################################
- ## Parse the options, arguments, get ready, etc.
- ######################################################################
- try:
- optlist, args = getopt.getopt(sys.argv[1:], 'h?s:u:p:', ['help','h','?'])
- except Exception, e:
- print str(e)
- exit_with_usage()
- options = dict(optlist)
- if len(args) > 1:
- exit_with_usage()
-
- if [elem for elem in options if elem in ['-h','--h','-?','--?','--help']]:
- print "Help:"
- exit_with_usage()
-
- if '-s' in options:
- hostname = options['-s']
- else:
- hostname = raw_input('hostname: ')
- if '-u' in options:
- username = options['-u']
- else:
- username = raw_input('username: ')
- if '-p' in options:
- password = options['-p']
- else:
- password = getpass.getpass('password: ')
-
- #
- # Login via SSH
- #
- p = pxssh.pxssh()
- p.login(hostname, username, password)
- p.sendline('apachectl status')
- p.expect('([0-9]+\.[0-9]+)\s*requests/sec')
- requests_per_second = p.match.groups()[0]
- p.logout()
- print requests_per_second
-
-if __name__ == "__main__":
- try:
- main()
- except Exception, e:
- print str(e)
- traceback.print_exc()
- os._exit(1)
-