implemented working externAgent wrapper
[progcomp10.git] / src / link / pexpect / examples / astat.py
diff --git a/src/link/pexpect/examples/astat.py b/src/link/pexpect/examples/astat.py
new file mode 100755 (executable)
index 0000000..82fa3c6
--- /dev/null
@@ -0,0 +1,74 @@
+#!/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)
+

UCC git Repository :: git.ucc.asn.au