paramiko模块使用(2)

news2025/1/10 6:15:27

远程查看服务器资源使用情况

单机实现
import paramiko

# 定义远程服务器的连接信息
hostname = '192.168.2.198'
username = 'root'
password = '123456'

# 创建SSH客户端对象
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

try:
    # 连接到远程服务器
    client.connect(hostname, username=username, password=password)

    # 获取CPU使用情况
    stdin, stdout, stderr = client.exec_command('top -bn1 | grep "Cpu(s)"')
    cpu_output = stdout.read().decode('utf-8').strip()
    print(f'CPU使用情况:{cpu_output}')

    # 获取IO使用情况
    stdin, stdout, stderr = client.exec_command('iostat -d')
    io_output = stdout.read().decode('utf-8').strip()
    print(f'IO使用情况:{io_output}')

    # 获取内存使用情况
    stdin, stdout, stderr = client.exec_command('free -m')
    memory_output = stdout.read().decode('utf-8').strip()
    print(f'内存使用情况:{memory_output}')

    # 获取磁盘使用情况
    stdin, stdout, stderr = client.exec_command('df -h')
    disk_output = stdout.read().decode('utf-8').strip()
    print(f'磁盘使用情况:{disk_output}')

except Exception as e:
    print(f'发生错误:{str(e)}')

finally:
    # 关闭SSH连接
    client.close()

在这里插入图片描述

多机实现
import paramiko

def check_server_info(hostname, username, password):
    # 创建SSH客户端对象
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

    try:
        # 连接到远程服务器
        client.connect(hostname, username=username, password=password)

        # 获取CPU使用情况
        stdin, stdout, stderr = client.exec_command('top -bn1 | grep "Cpu(s)"')
        cpu_output = stdout.read().decode('utf-8').strip()
        print(f'主机 {hostname} 的CPU使用情况:{cpu_output}')

        # 获取IO使用情况
        stdin, stdout, stderr = client.exec_command('iostat -d')
        io_output = stdout.read().decode('utf-8').strip()
        print(f'主机 {hostname} 的IO使用情况:{io_output}')

        # 获取内存使用情况
        stdin, stdout, stderr = client.exec_command('free -m')
        memory_output = stdout.read().decode('utf-8').strip()
        print(f'主机 {hostname} 的内存使用情况:{memory_output}')

        # 获取磁盘使用情况
        stdin, stdout, stderr = client.exec_command('df -h')
        disk_output = stdout.read().decode('utf-8').strip()
        print(f'主机 {hostname} 的磁盘使用情况:{disk_output}')

    except Exception as e:
        print(f'连接主机 {hostname} 发生异常:{str(e)}')

    finally:
        # 关闭SSH连接
        client.close()

# 定义多台主机的连接信息
hosts = [
    {'hostname': '192.168.2.198', 'username':'root', 'password':'123456'},
    {'hostname': '192.168.2.166', 'username':'root', 'password':'123qwe'},
    #{'hostname': '192.168.2.200', 'username':'root', 'password':'123456'}
]

# 连接每台主机并获取信息
for host in hosts:
    check_server_info(host['hostname'], host['username'], host['password'])

在这里插入图片描述

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

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

相关文章

力扣刷题SQL-197. 上升的温度---分步解题

表: Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是这个表的主键 该表包含特定日期的温度信息编…

qemu搭建arm环境以及文件共享

几乎完全参照该文章 使用QEMU搭建ARM64实验环境 - 简书 ubuntu 14.04,linux3.16, busybox-1.31.0 arm-linux-gnueabi-gcc -v linux3.16以及busybox下载安装可参考链接 Ubuntu14.04安装qemu,运行linux-3.16gdb调试_qemu 安装 ubuntu 14_这个我…

项目开启启动命令整合

启动RabbitMQ管理插件 1.启动 RabbitMQ 管理插件。 rabbitmq-plugins enable rabbitmq_management rabbitmq-server # 直接启动,如果关闭窗⼝或需要在该窗⼝使⽤其他命令时应⽤就会停⽌ rabbitmq-server -detached # 后台启动 rabbitmq-server start # 启⽤服务 rab…

【亲测可用】安装Qt提示“无法下载存档 http://download.qt.io/online/qtsdkrepository...“

下载Qt安装程序exe之后,一般直接双击运行然后,注册登录后,到了第三步【安装程序】时,进行远程检索文件总会卡在这里,无法进行到下一步。报错如下: 解决办法: 关闭安装程序,然后&…

一百三十二、ClickHouse——ClickHouse建表时默认字段非空导致数据问题

一、ClickHouse建表问题 由于ClickHouse建表时默认字段非空 (一)建表语句 (二)查看字段属性 ClickHouse建表时一般情况下直接默认字段非空 (三)导致问题 所以这就导致一般情况下,一些字段的…

iphone新机官网验机流程

苹果官网验机流程 进入苹果官网,找到技术支持,进入“查看保障服务和支持期限“页面,输入要查询的机器的序列号,就可以查询了。 苹果官网验机入口:https://checkcoverage.apple.com/ 输入iphone序列号进行验机&#xff…

小程序体验版上线注意事项

1.接口域名必须是https,有ssh证书。不能用ip地址。 2.需要在微信公众平台进行配置 微信公众平台->开发-> 开发管理->开发设置 对服务器域名和业务域名进行配置对业务域名进行配置时,需要下载校验文件,放在域名根目录下

力扣刷题27.移除元素(Accept03)

力扣刷题 代码随想录数组 3.移除元素 力扣27. 移除元素 方法一:暴力解决法 1. 思路 两层嵌套循环遍历数组,内层循环主要是当第一层循环遍历到的元素等于要移除的元素的值的时候,其后的元素依次向前挪动一个位置(覆盖要删除的…

计科web常见错误排错【HTTP状态404、导航栏无法点开、字符乱码及前后端数据传输呈现、jsp填写的数据传到数据库显示null、HTTP状态500】

web排错记录 在使用javaweb的过程中会出现的一些错误请在下方目录查找。 目录 错误1:HTTP状态404——未找到 错误2:导航栏下拉菜单无法点开的问题 错误3:字符乱码问题 错误4:jsp网页全部都是??&#x…

科技云报道:边缘云赛道开启,谁能成为首个“出线”厂商?

科技云报道原创。 每一轮底层技术变革,都会带来全新的商业机遇。随着万物智联时代到来,大量数据产生的源头由传统的中心化向分散数据源变革,越来越多云边协同场景的出现,使得边缘云成为计算领域数据处理的新范式之一。 自2020年…

CHI协议保序之Compack保序

一致性系统中,使用三种保序方式; Completion ack response ⭕Completion acknowledgment: □ 该域段主要是用来, □ 决定 RN 发送的 trans,与其他 RN 发送的命令产生的 SNP 之间的顺序; …

[VUE]Element_UI 实现TreeSelect 树形选择器

文章目录 前言1、安装2、引用3、使用 前言 最近在做一个人员管理系统,在增改用户信息时,可能会设置用户所在的部门,因为部门是多级的,于是想到用Element_UI的TreeSelect组件实现 效果: 1、安装 npm install --save…

蓝桥杯专题-真题版含答案-【牌型种数】【煤球数目】【寒假作业】【奖券数目】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

如何动态修改 spring aop 切面信息?让自动日志输出框架更好用

业务背景 很久以前开源了一款 auto-log 自动日志打印框架。 其中对于 spring 项目,默认实现了基于 aop 切面的日志输出。 但是发现一个问题,如果切面定义为全切范围过大,于是 v0.2 版本就是基于注解 AutoLog 实现的。 只有指定注解的类或…

pytest常用执行参数详解

1. 查看pytest所有可用参数 我们可以通过pytest -h来查看所有可用参数。 从图中可以看出,pytest的参数有很多,下面是归纳一些常用的参数: -s:输出调试信息,包括print打印的信息。-v:显示更详细的信息。…

GAN在图像超分辨领域的应用

本篇博客介绍了对抗生成网络GAN在图像超分辨领域的应用,包括(SRGAN, ESRGAN, BSRGAN, Real-ESRGAN),详细介绍了论文内容,方法,网络结构并对其做了相关总结。相关GAN原理的介绍大家可以查看我之前的几篇博客,链接如下:生…

从用户的角度谈GPT时代技术突破的两大关键逻辑

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

API接口:如何通过使用手机归属地查询

随着手机普及率的不断增加,手机号码的信息查询也成为了一个非常实用的功能。本文将介绍如何通过使用手机归属地查询API接口实现查询手机号码所在地的功能。 首先,我们需要一个可以查询手机号码所在地的API接口。目前市面上有很多免费或付费的API接口可供…

MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6:MySQL Enterprise Monitor之Query Analyzer

文章目录 MySQL 8.0 OCP (1Z0-908) 考点精析-性能优化考点6:MySQL Enterprise Monitor之Query AnalyzerMySQL Enterprise Monitor之Query AnalyzerQuery Response Time index (QRTi)例题例题1: Query Analyzer答案与解析1 参考 【免责声明】文章仅供学习交流&#x…

RT1052的GPIO

文章目录 GPIO资源GPIO资料GPIO复用器IOMUXGPIO的控制块 GPIO配置宏定义的使用 GPIO函数使用GPIO_PinRead 函数GPIO_WritePinOutput函数 GPIO资源 图中 P2、P3 和 P6 为 MCU 主 IO 引出口,这三组排针共引出了 97 个 IO 口,另外,通过&#xff…