summaryrefslogtreecommitdiffstats
path: root/lldb/third_party/Python/module/pexpect-2.4/examples/astat.py
blob: a5d1b3514bc27e87a8172a540227aaef4320472a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/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
import sys
import time
import re
import getopt
import getpass
import traceback
import pexpect
import 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 as 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 as e:
        print str(e)
        traceback.print_exc()
        os._exit(1)
OpenPOWER on IntegriCloud