首页 > 编程语言 > 详细

Python Paramiko模块

时间:2015-12-28 23:20:37      阅读:253      评论:0      收藏:0      [点我收藏+]

Paramiko模块批量管理:
通过调用ssh协议进行远程机器的批量命令执行.

一、使用用户名密码连接远程主机:

(登录远程,执行命令,返回结果,退出) 一次的SSH连接.

#!/usr/bin/env python
import paramiko
import sys,os

host = sys.argv[1]
user = www
passpord = 1q2w3e4r5t--
cmd = sys.argv[2]
s = paramiko.SSHClint()    #绑定实例
s.load_system_host_keys()    #加载本机HOST主机文件
#s.set_missing_host_key_policy(paramiko.AutoAddPolicy())  //连远程主机时会先检查本机的host文件,如果之前没有连接过这台机器则会报错,所用这句的加上。
s.connect(host,22,user,password,timeout=5)        #连接远程主机
stdin,stdout,stderr=s.exec_command(cmd)        #执行命令(输入,输出,错误返回结果)
cmd_result = stdout.read(),stderr.read()        #读取所用命令结果
for line in cmd_result:                    #循环输出,并打印出结果.
print line,

二、使用Key连接远程:

本机生成key :ssh-keygen

#!/usr/bin/env python
import paramiko
import sys,os

host = sys.argv[1]
user = www
#passpord = ‘1q2w3e4r5t--‘
cmd = sys.argv[2]
s = paramiko.SSHClint()    #绑定实例
s.load_system_host_keys()    #加载本机HOST主机文件
#s.set_missing_host_key_policy(paramiko.AutoAddPolicy())  //连远程主机时会先检查本机的host文件,如果之前没有连接过这台机器则会报错,所用这句的加上。
#pkey_file=‘/home/www/.ssh/id_rsa‘                  #私钥文件
key=paramiko.RSAKey.from_private_key_file(pkey_file)
s.connect(host,port,username,pkey=key,timeout=5)
stdin,stiout,stderr=s.exec_command(cmd)
#print split_line,h.ip,split_line
s.connect(host,22,user,pkey=key,timeout=5)        #连接远程主机
stdin,stdout,stderr=s.exec_command(cmd)        #执行命令(输入,输出,错误返回结果)
cmd_result = stdout.read(),stderr.read()        #读取所用命令结果
for line in cmd_result:                    #循环输出,并打印出结果.
print line,

三、Paramiko SFTP传送文件:

#!/usr/bin/env python
import paramiko
import sys,os
host = hostname
user = www
passpord = 1q2w3e4r5t--
s = paramiko.SSHClint()    #绑定实例
s.load_system_host_keys()    #加载本机HOST主机文件
#s.set_missing_host_key_policy(paramiko.AutoAddPolicy())  

t=paramiko.Transport((host,22))    #方法
t.connect(username=user,password=password)
 
#pkey_file=‘/home/www/.ssh/id_rsa‘                  #私钥文件
key=paramiko.RSAKey.from_private_key_file(pkey_file)
t.connect(username=username,pkey=key)

sftp=paramiko.SFTPClient.from_transport(t)  #将方法t绑定到实例中。
sftp.get(/tmp/paramiko1.py,paramiko2.pyy)        #从远程向本地下载,将/tmp/paramiko1.py‘下载到当前目录,并命名为‘paramiko2.pyy‘
sftp.put(paramiko1.py,/tmp/paramiko1.py)        #上传文件,将本地文件‘paramiko1.py‘上传至远程目录/tmp/下.
s.close()

 

Python Paramiko模块

原文:http://www.cnblogs.com/saneri/p/5084229.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!