summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornoah <noah@656d521f-e311-0410-88e0-e7920216d269>2006-12-22 21:01:46 +0000
committernoah <noah@656d521f-e311-0410-88e0-e7920216d269>2006-12-22 21:01:46 +0000
commitaebd6c69eacf21434696524e18d95768fa2a567e (patch)
treeafa59184e51af818f41eccd81adbfaa456832838
parent8570956948d327bdca3d127905bd21efb23e8f34 (diff)
downloadpexpect-aebd6c69eacf21434696524e18d95768fa2a567e.tar.gz
Added Apache status.
git-svn-id: http://pexpect.svn.sourceforge.net/svnroot/pexpect/trunk@446 656d521f-e311-0410-88e0-e7920216d269
-rwxr-xr-xpexpect/examples/astat.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/pexpect/examples/astat.py b/pexpect/examples/astat.py
new file mode 100755
index 0000000..288c948
--- /dev/null
+++ b/pexpect/examples/astat.py
@@ -0,0 +1,70 @@
+#!/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)
+