forked from OSchip/llvm-project
75 lines
1.9 KiB
Python
Executable File
75 lines
1.9 KiB
Python
Executable File
#!/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)
|
|
|