目录:

  • paramiko模块介绍
  • paramiko模块安装
  • paramiko模块使用

一、paramiko模块介绍

paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作,值得一说的是,fabric和ansible内部的远程管理就是使用的paramiko来现实。它包含两个常用模块,SSHClient()模块,SFTPClient()模块。

二、paramiko模块安装

pycrypto,由于 paramiko 模块内部依赖pycrypto,所以先下载安装pycrypto
pip3 install pycrypto
pip3 install paramiko

三、paramiko模块使用

1、执行远程命令SSHClient()模块

 1 #!/usr/bin/python
2
3 import paramiko
4
5
6
7 ssh = paramiko.SSHClient()
8
9 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
10
11 ssh.connect("某IP地址",22,"用户名", "口令")
12
13 stdin, stdout, stderr = ssh.exec_command("你的命令")
14
15 print stdout.readlines()
16
17 ssh.close()

2、执行远程命令SSHClient()模块之密钥登录

  1 import paramiko
2
3 private_key_path = '/home/auto/.ssh/id_rsa'
4 key = paramiko.RSAKey.from_private_key_file(private_key_path)
5
6 ssh = paramiko.SSHClient()
7 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
8 ssh.connect('主机名 ', 端口, '用户名', key)
9
10 stdin, stdout, stderr = ssh.exec_command('df')
11 print stdout.read()
12 ssh.close()
 1 import paramiko
2
3 pravie_key_path = '/home/auto/.ssh/id_rsa'
4 key = paramiko.RSAKey.from_private_key_file(pravie_key_path)
5
6 t = paramiko.Transport(('182.92.219.86',22))
7 t.connect(username='wupeiqi',pkey=key)
8
9 sftp = paramiko.SFTPClient.from_transport(t)
10 sftp.put('/tmp/test3.py','/tmp/test3.py')
11
12 t.close()
13
14 import paramiko
15
16 pravie_key_path = '/home/auto/.ssh/id_rsa'
17 key = paramiko.RSAKey.from_private_key_file(pravie_key_path)
18
19 t = paramiko.Transport(('182.92.219.86',22))
20 t.connect(username='wupeiqi',pkey=key)
21
22 sftp = paramiko.SFTPClient.from_transport(t)
23 sftp.get('/tmp/test3.py','/tmp/test4.py')
24
25 t.close()

3、上传文件到远程SFTPClient()模块

1 #!/usr/bin/python
2
3 import paramiko
4
5
6
7 t = paramiko.Transport(("某IP地址",22))
8
9 t.connect(username = "用户名", password = "口令")
10
11 sftp = paramiko.SFTPClient.from_transport(t)
12
13 remotepath='/tmp/test.txt'
14
15 localpath='/tmp/test.txt'
16
17 sftp.put(localpath,remotepath)
18
19 t.close()

4、远程下载到本地SFTPClient()模块

 1 import paramiko
2
3
4
5 t = paramiko.Transport(("某IP地址",22))
6
7 t.connect(username = "用户名", password = "口令")
8
9 sftp = paramiko.SFTPClient.from_transport(t)
10
11 remotepath='/tmp/test.txt'
12
13 localpath='/tmp/test.txt'
14
15 sftp.get(remotepath, localpath)
16
17 t.close() 复制代码

5、整合使用:

  1 #coding:utf-8
2 import paramiko
3 import uuid
4
5 class SSHConnection(object):
6
7 def __init__(self, host='192.168.2.103', port=22, username='root',pwd=''):
8 self.host = host
9 self.port = port
10 self.username = username
11 self.pwd = pwd
12 self.__k = None
13
14 def connect(self):
15 transport = paramiko.Transport((self.host,self.port))
16 transport.connect(username=self.username,password=self.pwd)
17 self.__transport = transport
18
19 def close(self):
20 self.__transport.close()
21
22 def upload(self,local_path,target_path):
23 # 连接,上传
24 # file_name = self.create_file()
25 sftp = paramiko.SFTPClient.from_transport(self.__transport)
26 # 将location.py 上传至服务器 /tmp/test.py
27 sftp.put(local_path, target_path)
28
29 def download(self,remote_path,local_path):
30 sftp = paramiko.SFTPClient.from_transport(self.__transport)
31 sftp.get(remote_path,local_path)
32
33 def cmd(self, command):
34 ssh = paramiko.SSHClient()
35 ssh._transport = self.__transport
36 # 执行命令
37 stdin, stdout, stderr = ssh.exec_command(command)
38 # 获取命令结果
39 result = stdout.read()
40 print (str(result,encoding='utf-8'))
41 return result
42
43 ssh = SSHConnection()
44 ssh.connect()
45 ssh.cmd("ls")
46 ssh.upload('s1.py','/tmp/ks77.py')
47 ssh.download('/tmp/test.py','kkkk',)
48 ssh.cmd("df")
49 ssh.close() 复制代码

python_paramiko的更多相关文章

  1. Python_paramiko模块

    paramiko模块安装:pip3 install paramiko paramiko模块(模拟SSH),是基于SSH(网络安全协议)用于连接远程服务器并执行相关操作. ssh: 基于口令的安全验证 ...

随机推荐

  1. spi、iic、can高速传输速度与选择

    uart: 无限制,常用9600.115200bps等保证双方通信速度相同. iic: 通讯速率400Kbps can: 一般为1Mbps SPI: 通信速率 fosc/4其传输速度可达几Mb/s 缺 ...

  2. pytorch学习资料链接

    2017年12月25日15:06:44 官方文档:http://pytorch.org/docs/master/index.html 官方文档中文翻译:https://pytorch-cn.readt ...

  3. Scrapy实战篇(四)爬取京东商城文胸信息

    创建scrapy项目 scrapy startproject jingdong 填充 item.py文件 在这里定义想要存储的字段信息 import scrapy class JingdongItem ...

  4. docker入门 什么是docker? 为什么使用docker?

    1.什么是docker? 轻量级操作系统虚拟化解决方案 2.为什么使用docker? 1.docker的启动是秒级的,比传统虚拟机快很多 2.资源利用率高,一台主机上可同时运行数千个docker容器 ...

  5. TCP‘三次握手’和‘四次挥手’(通俗易懂)

      概述 我们都知道 TCP 是 可靠的数据传输协议,UDP是不可靠传输,那么TCP它是怎么保证可靠传输的呢?那我们就不得不提 TCP 的三次握手和四次挥手. 三次握手 下图为三次握手的流程图 下面通 ...

  6. 使用IntelliJ IDEA创建简单的Dubbo实例

    这个博客是在https://blog.csdn.net/Crazer_cy/article/details/80397649篇文章上的基础上,自己学习用的. Zookeeper为dubbo的注册中心, ...

  7. Java序列化机制原理

      Java序列化就是将一个对象转化为一个二进制表示的字节数组,通过保存或则转移这些二进制数组达到持久化的目的.要实现序列化,需要实现java.io.Serializable接口.反序列化是和序列化相 ...

  8. 使用Jenkins部署Python项目

    廖大使用Fabric部署的.我使用Jenkins试试部署过程.虽然说是用python项目部署测试的,但其他项目也是同理的. 参考Jenkins+Python部署完整版,不过安装方式不同. 安装tomc ...

  9. uni-app开发小程序准备阶段

    1.软件安装 开始之前,开发者需先下载安装如下工具: HBuilderX:官方IDE下载地址 下面开发工具根据需求进行安装: 微信小程序开发工具安装 https://developers.weixin ...

  10. django 过滤器,标签

    过滤器: <p>{{ date|date:"Y-m-d" }}</p> {#2018-05-28,date是当前时间#} <p>{{ l|len ...