《python每天一小段》--(9)使用Paramiko库,批量操作linux服务器

使用Paramiko库,批量操作多Linux服务器

使用Paramiko库建立SSH连接并执行命令获取多个Linux服务器的磁盘信息。通过这个例子,你可以学习到如何使用Python自动化操作远程服务器。

操作如图:

查看了两台服务器的磁盘容量:
在这里插入图片描述

安装模块

使用jupyter安装paramiko模块:pip install paramiko,如果是windows系统使用cmd即可。

在这里插入图片描述

代码解析

以下是代码的详细解释:

import paramiko
import sysdef sshExeCMD(ip, username, password, port):ssh_client = paramiko.SSHClient()ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())try:ssh_client.connect(hostname=ip, port=port, username=username, password=password)except Exception as e:print("连接服务器%s失败,请检查IP地址和端口是否正确!" % ip)print(e)sys.exit(1)stdin, stdout, stderr = ssh_client.exec_command("df -hT")print("服务器%s磁盘信息:" % ip)print(stdout.read().decode('utf-8'))ssh_client.close()if __name__ == '__main__':servers = {"192.168.31.223": {"username": "root","password": "123456","port": 22},"192.168.31.162": {"username": "root","password": "123456","port": 22}}for ip, info in servers.items():sshExeCMD(ip=ip,username=info.get("username"),password=info.get("password"),port=info.get("port"))

代码说明

  1. 导入必要的模块:paramiko用于SSH连接,sys用于系统相关操作。

  2. 定义了一个名为sshExeCMD的函数,用于执行SSH连接和命令执行操作。函数接受四个参数:ip(服务器的IP地址),username(用户名),password(密码)和port(SSH端口号)。

  3. 在函数内部,创建了一个SSH客户端对象ssh_client,并使用paramiko.AutoAddPolicy()设置了自动添加服务器主机密钥到本地known_hosts文件的策略。

  4. 使用ssh_client.connect()方法连接到指定的服务器。如果连接失败,打印错误信息并退出程序。

  5. 如果连接成功,使用ssh_client.exec_command()方法执行命令df -hT,该命令用于获取磁盘信息。返回的结果包括标准输入、标准输出和标准错误。

  6. 打印服务器IP和磁盘信息。

  7. 关闭SSH连接。

  8. __name__ == '__main__'的条件下,定义了一个包含多个服务器信息的字典servers

  9. 使用for循环遍历servers字典中的每个服务器信息。

  10. 调用sshExeCMD函数,并传入服务器的IP地址、用户名、密码和端口号作为参数。

总结

本文介绍了如何使用Paramiko库在Python中操作多个Linux服务器。通过建立SSH连接并执行命令,我们可以获取远程服务器的磁盘信息。这个例子展示了Python在自动化操作服务器方面的强大能力,为服务器管理和维护提供了便利。

希望本文对你理解Paramiko库的使用以及Python操作远程服务器有所帮助!

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

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

相关文章

Socket 编程

1:针对 TCP 应该如何 Socket 编程? 服务端和客户端初始化 socket,得到文件描述符; 服务端调用 bind,将 socket 绑定在指定的 IP 地址和端口; 服务端调用 listen,进行监听; 服务端调用 accept&am…

单片机系统

我们来看单片机 的例子,读者可能会担心单片机(又称MCU,或微控制器) 过于专业而无法理解。完全没必要!在这里我们仅借它谈论一下有关时间的话题,顺带提一下单片机系统的概念。 单片机顾名思义是集成到一个芯…

【雷电模拟器桥接问题解决方法】

1.ROOT权限开启 2.开启网络桥接模式,选择静态IP设置,点击安装桥接网卡,填写IP地址(注意:IP地址要与host主机在同一IP段内) 3.重启后 adb shell就能进入到模拟器控制台中了,如果出现以下内容&…

作用域和作用域链

前端面试大全JavaScript作用域和作用域链 🌟经典真题 🌟作用域(Scope) 什么是作用域 全局作用域和函数作用域 块级作用域 🌟作用域链 什么是自由变量 什么是作用域链 关于自由变量的取值 🌟作用域…

java后端技术演变杂谈(未完结)

1.0版本javaWeb:原始servletjspjsbc 早期的jsp:htmljava,页面先在后端被解析,里面的java代码动态渲染完成后,成为纯html,再通过服务器发送给浏览器显示。 缺点: 服务器压力很大,因为…

python socket编程6 - 使用PyQt6 开发UI界面实现TCP server和TCP client单机通讯的例子

使用PyQt6 开发UI界面实现TCP server和TCP client单机通讯的示例。 一、PyQt6 实现的界面 二、TCP server代码的修改示意 界面提供网络参数的配置,以及提供人机交互过程中的数据获取和显示。 1、把上面的server代码封装成两个部分 A、class Server 负责接受UI界面…

公司来了个00后,我愿称之为王中王,让人崩溃

前几天我们公司一下子也来了几个新人,这些年前人是真能熬啊,本来我们几个老油子都是每天稍微加会班就打算走了,这几个新人一直不走,搞得我们也不好走。 2023年春招就要开始了,最近内卷严重,各种跳槽裁员&a…

生产制造中4种导致产品成本、库存核算差错的问题!(化工/化妆品/生物制剂/混凝土等行业ODOO)

在化工/化妆品/生物制剂/混凝土等行业,因为其生产物料及产成品大都以液体(或散颗粒)形态为主,多以重量为计数方式;且液体(或散颗粒)相较于固体的较大区别就是产品计数上变数较大,固体…

DSShop移动商城网店系统 反序列化RCE漏洞复现

0x01 产品简介 DSShop是长沙德尚网络科技有限公司推出的一款单店铺移动商城网店系统,能够帮助企业和个人快速构建手机移动商城,并减少二次开发带来的成本。 以其丰富的营销功能,精细化的用户运营,解决电商引流、推广难题,帮助企业打造生态级B2C盈利模式商业平台。完备的电商…

Clean 架构下的现代 Android 架构指南

Clean 架构下的现代 Android 架构指南 Clean 架构是 Uncle Bob 提出的一种软件架构,Bob 大叔同时也是 SOLID 原则的命名者。 Clean 架构图如下: 这张图描述的是整个软件系统的架构,而不是单体软件,其中至少包括服务端以及客户端…

从声纹模型到语音合成:音频处理 AI 技术前沿 | 开源专题 No.45

facebookresearch/audiocraft Stars: 16.6k License: MIT AudioCraft 是一个用于音频生成的 PyTorch 库。它包含了两个最先进的 AI 生成模型 (AudioGen 和 MusicGen) 的推理和训练代码,可以产生高质量音频。该项目还提供了其他功能: MusicGen&#xf…

MySQL笔记-第02章_MySQL环境搭建

视频链接:【MySQL数据库入门到大牛,mysql安装到优化,百科全书级,全网天花板】 文章目录 第02章_MySQL环境搭建1. MySQL的卸载步骤1:停止MySQL服务步骤2:软件的卸载步骤3:残余文件的清理步骤4&am…

原生横向滚动条 吸附 页面底部

效果图 /** 横向滚动条 吸附 页面底部 */ export class StickyHorizontalScrollBar {constructor(options {}) {const { el, style } optionsthis.createScrollbar(style)this.insertScrollbar(el)this.setScrollbarSize()this.onEvent()}/** 创建滚轴组件元素 */createS…

WEB渗透—反序列化(十一)

Web渗透—反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩哔_…

Python自动化测试web常见框架汇总

1、前言 目前,有非常多的Python框架,用来帮助你更轻松的创建web应用。这些框架把相应的模块组织起来,使得构建应用的时候可以更快捷,也不用去关注一些细节(例如socket和协议),所以需要的都在框…

金融帝国实验室(Capitalism Lab)V10版本新增崭新企业总部大楼

金融帝国实验室(Capitalism Lab)V10版本新增崭新企业总部大楼 ————————————— 【全新V10版本开发播报】 即将推出的V10版本将引入两座崭新的企业总部大楼!新大楼采用先进的现代化建筑设计,以取代旧的总部大楼。 ———…

[SHCTF 2023]——week1-week3 Web方向详细Writeup

Week1 babyRCE 源码如下 <?php$rce $_GET[rce]; if (isset($rce)) {if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\|\%|\>|\<|\|\"/i", $rce)) {system($rce);}else {echo "hhhhhhacker!!!".&…

代码随想录二刷 | 字符串 |重复的子字符串

代码随想录二刷 &#xff5c; 字符串 &#xff5c;重复的子字符串 题目描述解题思路 & 代码实现移动匹配KMP算法 题目描述 459.重复的子字符串 给定一个非空的字符串 s &#xff0c;检查是否可以通过由它的一个子串重复多次构成。 示例 1: 输入: s “abab” 输出: tru…

XC4060 40V降5V/3.3V 0.6A小电流高耐压芯片 适用于单片机供电输出、电池供电设备

XC4060器件是高效率&#xff0c;同步降压DC/DC稳压器。具有较宽的输入范围&#xff0c;它们适用于广泛的应用&#xff0c;例如来自非稳压源的功率调节。他们的特点是一个长距离(500mQ/300mQ2型) 内部开关的效率最高 (92%)。Sum od (非A选项)和PWM模式(A选项)&#xff0c;工作频…

大部分只使用这 14 个 Git 命令就够了

必须了解的命令整理 1&#xff0c;git init 初始化一个新的Git仓库。 这将在当前目录中创建一个名为".git"的子目录&#xff0c;Git会将所有仓库的元数据存储在其中。 2&#xff0c;git clone 克隆一个已存在的仓库。 这会创建一个本地仓库的副本&#xff0c;包…