Auf dem Bildschirm ausführen. Auf dem Zielserver ist die SSH-Schlüsselauthentifizierung im Voraus festgelegt
screen.py
#!/usr/bin/python
import os
import time
from subprocess import Popen, PIPE, STDOUT
_SERVER_LIST = (#('hostname', 'ipaddress'),
('s1', '192.168.0.1'),
('s2', '192.168.0.2'),
('s3', '192.168.0.3'),)
_SSH_USER = 'admin'
_SUBPROCESS_ARGS = {'stdin' : None,
'stdout' : PIPE,
'stderr' : STDOUT,
'shell' : False,}
#----------------------------------------------------------
# SCREEN
#----------------------------------------------------------
def screen_ssh():
for server_name, server_ip in _SERVER_LIST:
screen_ssh = ('screen',
'-X',
'eval',
'split',
'focus',
'screen',
'title %s' % server_name,
'stuff "ssh -l %s %s\n"' % (_SSH_USER, server_ip))
p = Popen(screen_ssh, **_SUBPROCESS_ARGS)
time.sleep(1.0)
for i in p.stdout : print i
#----------------------------------------------------------
# MAIN
#----------------------------------------------------------
if os.environ['TERM'] == "screen" :
screen_ssh()
else :
print "not screen"
Recommended Posts