'''
Created on 2014-11-6
@author: Administrator
'''
# -*- coding: utf-8 -*-
import xdrlib,sys,os
import xlrd
from socket import *
from time import ctime
import socket
import base64
import paramiko
import os
reload(sys)
sys.setdefaultencoding("utf-8")
def exec_win32cmd(commands=[]):
ret=[]
for cmd in commands:
try:
ret.append(os.popen(cmd.strip('\r').strip('\n')))
except Exception as ex:
ret.append("cmd %s error" %(cmd))
continue
return ret
def exec_cmd(ip="",port=22,user="root",pwd="",cmd=[]):
if ip=="":
print "dst host ip is None."
sys.exit(0)
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,port,user,pwd,timeout=5)
for m in cmd:
stdin, stdout, stderr = ssh.exec_command(m)
#stdin.write("Y") #input Y
out = stdout.readlines()
for o in out:
print o
print '%s\tOK\n'%(ip)
ssh.close()
except Exception as ex:
print 'Connect %s \tError.%s\n'%(ip,str(ex))
class SSHClient:
def __init__(self,ip,port,user,pwd):
if ip=="":
print "dst host ip is None."
sys.exit(0)
print "initializing ssh_process..."
self.ip=ip
self.port=port
self.user=user
self.pwd=pwd
def connect(self):
client=None
try:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(self.ip,self.port,self.user,self.pwd,timeout=5)
except Exception as ex:
client.close()
print "connect %s:%s with user %s failed. %s" %(self.ip,str(self.port),self.user,str(ex))
self.client= client
def ssh_cmd(self,cmds=[]):
self.connect()
for m in cmds:
stdin, stdout, stderr = self.client.exec_command(m)
#stdin.write("Y")
out = stdout.readlines()
for o in out:
print o
print '%s\tOK\n'%(self.ip)
self.close()
return out
def close(self):
try:
self.client.close()
except Exception as e:
print "close ssh failed.%s" %(str(e))
调用方法:
ssh=SSHClient("200.200.88.130",22345,"admin","1")
ssh.ssh_cmd(["uname -a","date"])