Python自动登陆ssh并执行命令

功能

Python自动登陆ssh并执行命令

环境

Python2

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# !/usr/bin/env 
# -*- coding:utf-8 -*-
import paramiko
import threading

def ssh2(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)
# 简单交互,输入 ‘Y’
# stdin.write("Y")
out = stdout.readlines()
# 屏幕输出
for o in out:
print o,
print '%s\tOK\n'%(ip)
ssh.close()
except :
print '%s\tError\n'%(ip)

if __name__=='__main__':
cmd = ["touch /tmp/test.txt"]# 你要执行的命令列表
username = "root" # 用户名
passwd = "***" # 密码
threads = [] # 多线程
print "Begin......"
for i in range(1,254):
ip = '192.168.48.'+str(i)
a=threading.Thread(target=ssh2,args=(ip,username,passwd,cmd))
a.start()