root@node7:/opt# vim pyssh3.py
#!/usr/bin/python"""SSH connect to remote machines and then execute what you need command"""import paramiko # import paramiko && help(paramiko) || pydoc paramikoimport threading
#debug = True
#class SSHClass(objiect):# "class"
def pyssh3(ip, username, passwd, cmd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(ip, 22, username, passwd, timeout=5) for m in cmd: stdin, stdout, stderr = ssh.exec_command(m)# stdin.write("Y") #simple interaction, default input 'Y' out = stdout.readlines() #output to screen for o in out: print o, print '%s\tOK\n' % (ip), ssh.close() except Exception, e: print 'ERR: can not find remote host %s' % (ip), e
if __name__=='__main__': cmd = ['hostname']#need to execute cmd username = "root"#username passwd = "123123" #password threads = [] #multi thread print "Prompt:begin to connect remote machines......" for i in range(150,156): ip = '10.100.1.'+str(i) a=threading.Thread(target=pyssh3,args=(ip,username,passwd,cmd)) #used default arguments# __init__(self, group=None, target=None, name=None, args=(), kwargs=None, verbose=None)# a=threading.Thread()# a.__init__(group=None, target=pyssh, name=None, args=(ip,username,passwd,cmd),# kwargs=None, verbose=None) a.start()
上一篇:二维数组名做参数传递问题有哪些