当前位置: 首页 > news >正文

python 自动化运维 Paramiko 模块

Paramiko 模块

paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。


安装方法 pip install paramiko 


模块使用介绍场景


1、在windows 下面远程执行liunx 主机的命令

连接方法一、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#coding:utf-8
import  paramiko
ssh  =  paramiko.SSHClient()
 
known_hosts  =  paramiko.AutoAddPolicy()  ##默认的受信列表
ssh.set_missing_host_key_policy(known_hosts)  ##采用默认授信列表
 
#建立连接
ssh.connect(
     hostname  =  "192.168.10.31" ,
     port  =  22 ,
     username  =  "root" ,
     password  =  "1111"
)
stdin,stdout,stderr  =  ssh.exec_command( "free -m " )
print  (stdout.read())
ssh.close()

连接方法二、

1
2
3
4
5
6
7
8
trans  =  paramiko.Transport(( "192.168.10.31" , 22 ))
trans.connect(username  =  "root" ,password  =  "1111" )
#登录必须先实例化一个客户端
ssh  =  paramiko.SSHClient()
ssh._transport  =  trans  #设置客户端使用该通道
stdin,stdout,stderr  =  ssh.exec_command( "free -m " ) #远程执行命令
print  (stdout.read())
ssh.close()

#模拟服务器上传和下载功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#coding:utf-8
import  paramiko
 
trans  =  paramiko.Transport(( "192.168.10.31" ), 22 )
trans.connect(username  =  "root" ,password  =  "1111" )
trans  =  paramiko.Transport(( "192.168.10.31" , 22 ))
trans.connect(username  =  "root" ,password  =  "1111" )
sftp  =  paramiko.SFTPClient.from_transport(trans) #实例化文件一个上传下载的客户端
sftp  =  paramiko.SFTPClient.from_transport(trans)
#上传
#get从远程服务器上下载文件到本地
sftp.get( "/root/Desktop/test.py" , "t1.py" )
#下载
#put 上传本地文件到远程服务器
sftp.put( "by.txt" , "/root/Desktop/beiying.txt" )






本文转自 水滴石川1 51CTO博客,原文链接:http://blog.51cto.com/sdsca/1966871,如需转载请自行联系原作者

相关文章:

  • /etc/sudoer文件配置简析
  • 通过ipmitool监控机房内服务器温度
  • 使用vxsim(一)
  • linux系统学习第九天-工程师技术
  • Windows防火墙开启ping
  • 不要在头文件中使用 using namespace std;
  • MYSQL 动态变量赋值不对的情况
  • Innobackup 在从库上做增量备份
  • nginx
  • paip.mysql 性能跟iops的以及硬盘缓存的关系
  • C#运行时的相互关系
  • ubifs笔记
  • OSI七层模型@year12
  • TopCoder - TCHS SRM 1 答案 及 代码
  • 洛谷 P1004 方格取数 【多线程DP/四维DP/】
  • 【Leetcode】101. 对称二叉树
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 4个实用的微服务测试策略
  • ES6系统学习----从Apollo Client看解构赋值
  • maven工程打包jar以及java jar命令的classpath使用
  • MySQL-事务管理(基础)
  • Webpack 4 学习01(基础配置)
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 多线程 start 和 run 方法到底有什么区别?
  • 基于游标的分页接口实现
  • 如何实现 font-size 的响应式
  • 微服务核心架构梳理
  • 移动端 h5开发相关内容总结(三)
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​ArcGIS Pro 如何批量删除字段
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (四)汇编语言——简单程序
  • (未解决)macOS matplotlib 中文是方框
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • *Django中的Ajax 纯js的书写样式1
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .libPaths()设置包加载目录
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET HttpWebRequest、WebClient、HttpClient
  • .Net MVC + EF搭建学生管理系统
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .sys文件乱码_python vscode输出乱码
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Android]竖直滑动选择器WheelView的实现
  • [BSGS算法]纯水斐波那契数列
  • [CakePHP] 在Controller中使用Helper
  • [ESP32] 编码旋钮驱动
  • [HTML]Web前端开发技术30(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [JS]Math.random()随机数的二三事