您的位置:首页 > 编程语言 > Python开发

python ssh2远程登录节点并执行命令

2014-11-04 10:47 791 查看
root@node7:/opt# vim pyssh2.py

#!/usr/bin/python

"""

SSH connect to remote machines and then execute what

you need command

"""

import paramiko # import paramiko && help(paramiko) || pydoc paramiko

import threading

#debug = True

#class SSHClass(objiect):

# "class"

def pyssh2(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=pyssh2,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()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: