Add an experimental ssh monitoring script.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
This commit is contained in:
parent
2846b18251
commit
88b77d2bed
60
tools/experimental_ssh_eventlet.py
Executable file
60
tools/experimental_ssh_eventlet.py
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
import eventlet
|
||||||
|
from eventlet.green import socket
|
||||||
|
import libssh2
|
||||||
|
import time
|
||||||
|
import os
|
||||||
|
import random
|
||||||
|
|
||||||
|
|
||||||
|
def monitor(hostname, username, id):
|
||||||
|
|
||||||
|
print '%s %s %d' % (hostname, username, id)
|
||||||
|
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
sock.connect((hostname, 22))
|
||||||
|
|
||||||
|
session = libssh2.Session()
|
||||||
|
started = False
|
||||||
|
while not started:
|
||||||
|
try:
|
||||||
|
session.startup(sock)
|
||||||
|
started = True
|
||||||
|
except:
|
||||||
|
eventlet.sleep(1)
|
||||||
|
session.userauth_publickey_fromfile(
|
||||||
|
username,
|
||||||
|
os.path.expanduser('~/.ssh/id_rsa.pub'),
|
||||||
|
os.path.expanduser('~/.ssh/id_rsa'),
|
||||||
|
'')
|
||||||
|
|
||||||
|
while True:
|
||||||
|
sl = random.randint(1, 20)
|
||||||
|
eventlet.sleep(sl)
|
||||||
|
channel = session.channel()
|
||||||
|
channel.execute('uname -a')
|
||||||
|
|
||||||
|
stdout = []
|
||||||
|
#stderr = []
|
||||||
|
|
||||||
|
while not channel.eof:
|
||||||
|
data = channel.read(1024)
|
||||||
|
if data:
|
||||||
|
stdout.append(data)
|
||||||
|
|
||||||
|
#data = channel.read(1024, libssh2.STDERR)
|
||||||
|
#if data:
|
||||||
|
# stderr.append(data)
|
||||||
|
|
||||||
|
print '%d %d %s' % (id, sl, ''.join(stdout))
|
||||||
|
#print ''.join(stderr)
|
||||||
|
|
||||||
|
|
||||||
|
pool = eventlet.GreenPool()
|
||||||
|
i = 1
|
||||||
|
while True:
|
||||||
|
pool.spawn_n(monitor, '192.168.122.238', 'root', i)
|
||||||
|
i = i + 1
|
||||||
|
if i > 800: break
|
||||||
|
|
||||||
|
pool.waitall()
|
Loading…
Reference in New Issue
Block a user