#!/usr/bin/env python
# This script is used to as server , which could transfer script to agents , copy files to agents
import os
import socket
import threading
HostList = {
'10.1.214.10':10001,
'10.1.214.105':10001,
'10.1.214.106':10001
}
class LoadScript(object):
def __init__(self):
pass
def get_input(self):
input_str = raw_input('Please input the script(Absolute Path ) :')
return input_str
def check_input(self):
while 1:
input_str = self.get_input()
if input_str is None or os.path.isfile(input_str) is False:
print "Wrong Path for script!\n"
else:
print "Your script is %s" % input_str
return input_str
def read_script(self):
script = self.check_input()
try:
f = open(script, 'r')
content = f.readlines()
content_str = ''.join(content)
return content_str
except:
print "Open script %s Error!" % script
sys.exit(1)
class SocketServer(object):
def __init__(self, host, port):
self.sock = socket.socket( socket.AF_INET, socket.SOCK_STREAM )
self.host = host
self.port = port
def connect(self):
self.sock.connect((self.host, self.port))
def send(self, content):
#content = LoadScript().read_script()
print "content:", content
self.sock.send(content)
def receive(self):
result = self.sock.recv(10000)
print result
def close(self):
self.sock.close()
def run(self, content):
self.connect()
self.send(content)
self.receive()
self.close()
content = LoadScript().read_script()
print content
for key in HostList.keys():
server = SocketServer(key, HostList[key])
t = threading.Thread(target = server.run, args = (str(content)))
t.start()
客户端脚本,cat agent.py
#!/usr/bin/env python
# This script is used to as server , which could transfer script to agents , copy files to agents
import socket
import subprocess
import os
class SocketAgent(object):
def __init__(self, port):
self.port = port;