介绍:
paramiko 可以用例批量在远程linux用来执行命令,拷贝文件。
一 安装:
pip install paramiko
pip 使用http://blog.csdn.net/qq_37023538/article/details/53615342
二 paramiko 使用
#encoding=gbk
import paramiko,sys
class paramiko_class:
def __init__(self, ip, port, username, password=None, key_file, know_hosts, key_type):
self.hostname = ip
self.port = port
self.username = username
self.password = password
self.key_file = key_file
self.know_hosts = know_hosts
def connect(self):
self.ssh = paramiko.SSHClient()
self.ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
if(self.password == None):
self.key = paramiko.RSAKey.from_private_key_file(self.key_file)
self.ssh.load_system_host_keys(self.know_hosts)
self.ssh.connect(self.hostname,self.port,self.username,pkey=self.key)
else:
self.ssh.connect(self.hostname, self.port, self.uname, password=self.password)
except ex:
print ex
def close(self):
self.ssh.close()
def run(self,cmd):
stdin, stdout, stderr = self.ssh.exec_command(cmd)
std = stdout.read()
err = stderr.read()
return std,err
def ftp_put(self,localpath, remotepath):
t = self.ssh.get_transport()
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(localpath,remotepath)
def ftp_get(self,localpath,remotepath):
t = self.ssh.get_transport()
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get(remotepath,localpath)
三 参数和函数介绍
ip = '172.0.0.108' #IP
port = 22 #端口
username = 'root' #用户名
password = '123456' #密码登录的密码
key_file = '/root/.ssh/id_rsa' #rsa登录key文件地址
know_hosts = '/root/.ssh/known_hosts' # rsa登录know_hosts地址
connect 连接函数
run 运行命令行函数
ftp_put 传文件到远程服务器函数
ftp_get 从远程服务器取文件函数