Python运维自动化Paramiko模块

news2024/10/5 14:21:11

paramiko学习笔记

    • 为什么要用到paramiko模块
    • 安装paramiko模块
    • paramiko介绍
    • SSHClient---连接服务器
    • exec_command---执行命令
    • SFTPClient---传输文件
      • 下载和上传文件
      • 其它方法

为什么要用到paramiko模块

  工作中常用到Linux服务器需要更新开发的代码,之前一直是使用xshell连接多个linux服务器,要上传、下载、复制文件,操作起来有些麻烦

安装paramiko模块

  • pip install paramiko
  • 当前版本为3.2,安装好后即可以进行使用
    在这里插入图片描述

paramiko介绍

  • paramiko是基于Python实现的SSH2远程安全连接,支持认证及密钥方式。可以实现远程命令执行、文件传输
  • paramiko包含两个核心组件,一个为SSHClient类,另一个为SFTPClient类

SSHClient—连接服务器

  • SSHClient类是SSH服务会话的高级, 该类封装了传输(transport)、通道(channel)及SFTPClient的校验、建立的方法,通常用于执行远程命令。
#! /usr/bin/python3
# @Author: 无涯

#导入paramiko
import paramiko


#定义对象ssh_client
ssh_client=paramiko.SSHClient()

# 通过这个set_missing_host_key_policy方法用于实现登录是需要确认输入yes,否则保存,不加这个会报错
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

#使用connect类来连接服务器
ssh_client.connect(hostname="主机地址", port=默认端口号22, username="用户名", password="密码")

没有报错,则说明连接正常,如图所示
在这里插入图片描述

exec_command—执行命令

使用exec_command执行命令会返回三个信息, 可以通过三个变量来接受,然后使用print输出到屏幕查看,如图所示

  1. 标准输入内容(用于实现交互式命令)
  2. 标准输出(保存命令的正常执行结果)
  3. 标准错误输出(保存命令的错误信息)
#! /usr/bin/python3
# @Author: 无涯

#导入paramiko
import paramiko


#定义对象ssh_client
ssh_client=paramiko.SSHClient()
# 通过这个set_missing_host_key_policy方法用于实现登录是需要确认输入yes,否则保存,不加这个会报错
ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

#使用connect类来连接服务器
ssh_client.connect(hostname="主机地址", port=默认端口号22, username="用户名", password="密码")

# 定义3个变量分别是:输入,输出,错误,python基础语法,不懂请学习python基础语法
std_in, std_out, std_err = ssh_client.exec_command("hostname")

# 读取输出的信息,为主机名,然后定义编码格式防止出现读取错误
print(std_out.read().decode("utf-8"))

# 运行结果  显示主机名
wuya

SFTPClient—传输文件

  • SFTPClient作为一个SFTP客户端对象,根据SSH传输协议的sftp会话,实现远程文件操作,比如文件上传、下载、权限、状态等操作。

下载和上传文件

  • 在linux服务中创建文件:test.yml
    在这里插入图片描述
import paramiko


ssh_conn = paramiko.Transport(("180.76.170.89", 22))
ssh_conn.connect(username="root", password="Rifnfhv223!@#")

# 创建连接后,使用sftpclient类和from_transport(括号里写上边创建的Transport通道)基于上边ssh连接创建一个sftp连接,
# 定义成ftp_client变量后边方便引用
ftp_client = paramiko.SFTPClient.from_transport(ssh_conn)

---------下载文件:get ---------
# 参数说明:ftp_client.get("目标文件", r"保存位置,写到文件名") 目标文件和保存位置都要写上文件名,如当前文件:test.yml
- 注意参数位置不能写错
ftp_client.get("/opt/test.yml", r"E:\Linux_File\test.yaml")


---------上传文件:put ---------
# 参数说明:ftp_client.put("目标文件", r"保存位置,写到文件名") 目标文件和保存位置都要写上文件名,如当前文件:test.ym
ftp_client.get(localpath=r"E:\Linux_File\test.yaml", remotepath="/opt/test.yml")


#关闭ssh连接
ssh_conn.close()

其它方法

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719685.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python_多任务:进程、线程、协程

目录 进程 实现多进程 进程池 实现进程池 线程 实现多线程 多线程的资源竞争问题 互斥锁解决资源竞争问题 死锁 协程 gevent 进程 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位&am…

“多”维演进:智能编码的深度进化

我们在追求怎样的编码未来? 无处不在的视频渗透、井喷式的流量增长、多元的场景技术需求、用户对视频体验的“不将就”……音视频行业的快速发展却伴随着“编码标准升级速度缓慢”、“硬件红利见底”、“编码复杂度带来的成本问题”等众多挑战。 视频编码还“卷”得…

SQL Server 2008 r2 修改sa密码 通过sql server 身份验证登陆

SQL Server的两种身份验证模式是Windows验证模式和SQL Server验证模式。 sql server 2008 r2 修改sa密码 通过sql server 身份验证登陆 【解决方法如下】 通过windows 身份验证登陆后,首先选中服务器(右键)->属性 ->安全性->服务器身份验证修改为"SQL SERVER和W…

浅谈电瓶车在线充电管理系统的设计与应用

安科瑞 华楠 摘要:基于ARM 硬件平台,研究了电瓶车充电技术,提出了一种智能型电瓶车在线安全充电系统,该系统可根据实际充电情况实现智能断电,同时提供给用户一种远程充电、断电的平台,目的是防止电瓶车过度…

港联证券|个人的分红要交税吗?

近年来,随着经济的快速发展,越来越多的人开始关注个人财务管理,其中一个重要的问题就是个人的分红是否需要缴纳税款。这个问题并不简单,需要从多个角度进行综合分析。 首先,我们需要明确一点,个人的分红属于…

浅谈数据中心机房动环监控系统可视化设计与研究

安科瑞电气股份有限公司 上海嘉定 201801 摘要:为了维护好数据中心机房动力环境,及时发现隐患和排除故障,降低管理成本控制能耗,提高运维效率,保障数据中心安全、高效、环保、稳定的运行,针对目前机房管理…

通过五点判断CRM系统是否好用

CRM管理系统在当今市场竞争中扮演着越来越重要的角色。因此,企业选择一款适合自己的CRM系统是非常关键的。那么,如何评价一款CRM系统是否好用? 1、功能是否全面 好用的CRM系统应该能够覆盖企业与客户交互的全过程,包括营销管理、…

【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)

一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致问题分析) 数据不一致的原因逻辑失败导致的数据不一致物理失败导致的数据不一致 数据一致性的解决方案消费消息异步删除缓存主要流程如下图所示 订阅Binlog利用队列…

只出现一次的数字

题目链接 只出现一次的数字 题目描述 注意点 1 < nums.length < 30000-30000 < nums[i] < 30000除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次 解答思路 最初想到使用一种数据结构将元素存储起来&#xff0c;但是空间复杂度为O(n)&#xff0…

Linux(ubuntu)上安装vmware workstation虚拟机

Linux&#xff08;ubuntu&#xff09;上安装vmware workstation虚拟机 首先下载vmware workstation 官网下载地址&#xff1a;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 下滑至页面下方下载&#xff1a; 或者点击此处下载 下载完成后…

首发价11999元?华为智慧屏S3Pro电视7月10日上市

华为最新推出了两款全新的智慧屏 S3 Pro&#xff0c;分别是65英寸和75英寸版本&#xff0c;售价分别为5999元和7999元。除此之外&#xff0c;华为还推出了全新的S3 Pro 86英寸型号&#xff0c;首发价为11999元。这款电视将于7月10日上市&#xff0c;对于感兴趣的用户来说&#…

押注数字人,百度、科大讯飞“短兵相接”

配图来自Canva可画 近两年&#xff0c;小雀斑、柳夜熙、AYAYI等大量网红数字人的相继出现&#xff0c;以及虚拟数字技术在《指环王》和《阿凡达》以及《刺杀小说家》等电影中的广泛应用&#xff0c;还有北京冬奥会期间数字人在手语解说、节目直播等众多场合亮相&#xff0c;使…

2024浙大GMSCM提面第一场:全英文项目的生死选择题

本周末是今年浙大MBA非全英文项目GMSCM的第一场提前批面试&#xff0c;作为诸多方向中相对比较稳定的项目之一&#xff0c;GMSCM项目每年的提前批面试申请也都表现的比较稳健&#xff0c;而其目前主要的招生也是依托于提前批面试&#xff0c;根据这几年的情况&#xff0c;每年浙…

vue+cesium 获取鼠标浮动的经纬度

一、需求 是在地图中展示鼠标的经纬度 二、成果展示 三、思路和方法 html <div class"mouseMove" v-if"mouseMove.lat"><div v-if"mouseMove.lat">经度&#xff1a;{{ mouseMove.lng }}</div><div v-if"mouseMove…

关于研究SELECT * 是否会导致SQL查询效率变低的问题

引言 无论在工作还是面试中&#xff0c;关于SQL中不要用“SELECT *”的问题&#xff0c;经常会被大家用作讨论&#xff0c;虽说听烂了&#xff0c;但普遍理解还是在很浅的层面&#xff0c;并没有多少人去追根究底&#xff0c;探究其原理。 一、效率低的原因 先看一下最新《阿…

计算机网络_ 1.3 网络核心(数据交换_电路交换_多路复用)

计算机网络_数据交换_电路交换_多路复用 多路复用频分多路复用FDM时分多路复用TDM波分多路复用WDM码分多路复用CDM 多路复用 多路复用&#xff08;Multiplexing&#xff09;&#xff0c;简称复用&#xff0c;是通信技术的基本概念。 链路/网络资源&#xff08;如带宽&#x…

【动态规划算法】第四题:91.解码方法

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 &#x1f389;作者宣言&#xff1a;认真写好每一篇博客 &#x1f38a;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作…

一建建筑周超口袋书

第一部分 建筑工程技术1A414000 建筑工程材料[B-4,2021] 常见的高分子防水卷材有哪些?三元乙丙、聚氯乙烯、氯化聚乙烯、氯化聚乙烯-橡胶共混及三元丁橡胶防水卷材记忆技巧三单数年考试中&#xff0c;2011 年屋面女儿墙渗漏水处理&#xff0c;2015 年女儿墙防水识图找错&#…

element ui table 状态用switch展示

效果图如下 方法一&#xff1a;将图片封装成组件 1.&#xff1a;ImgswitchOpen.vue 2&#xff1a;页面引入组件 3&#xff1a;使用 方法二&#xff1a;引入图片 1&#xff1a;引入图片 2&#xff1a;在data中定义 3.使用

垂直领域大模型:从医疗ChatDoctor到金融BloombergGPT、法律ChatLaw/LawGPT_zh

第一部分 各种医疗类ChatGPT&#xff1a;或中英文数据微调LLaMA、或中文数据微调ChatGLM 1.1 基于LLaMA微调的中英文版ChatDoctor 1.1.1 ChatDoctor&#xff1a;通过self-instruct技术提示API的数据和医患对话数据集微调LLaMA Github上有一个基于LLaMA模型的医疗微调模型&am…