- 论坛徽章:
- 0
|
没写过python脚本,今天想写远程登陆批量操作的脚本。基本是借鉴网上的脚本,脚本如下
======================
import paramiko
import threading
def ssh2(ip,user,pw,pt,cmd):
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,username=user,password=ip_address,port=pt)
for m in cmd:
stdin, stdout, stderr = ssh.exec_command(m)
out = stdout.readlines()
for o in out:
print o,
print '%s\tOK\n'%(ip_address)
ssh.close()
except :
print '%s\tError\n'%(ip_address)
if __name__=='__main__':
cmd = ['echo ','test > /root/test.txt']
user = "root"
#threads = []
f = file('~/file')
while True:
line = f.readline()
if len(line) == 0:
break
ip1 = line.split()
ip_address = ip1[0]
pt1 = ip1[1]
ip_passwd = ip1[2]
print "address is",ip_address,"and port is",pt1,"passwd is",ip_passwd
#ssh2(ip_address,user,ip_passwd,cmd,pt1)
affair=threading.Thread(target=ssh2,args=(ip_address,pt1,user,ip_passwd,cmd))
affair.start()
f.close()
=================================
脚本从本地去读文件file,file的内容为一台服务器信息一共3列,分别为ip,port,passwd。也参考了论坛里其他几乎相同的脚本。运行无报错,但是就是无法登陆到远程服务器上进行命令操作。除非把端口写死,才可以连接。求感兴趣的朋友帮忙分析下。谢谢啊~ |
|