paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息

简介: paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息

需求分析:

监控脚本使用psutil模块来获取:

1、隔一秒钟输出一次信息,运行之后监控10s: import time   ,time.sleep(1)

2、cpu的平均使用率、显示cpu的逻辑核数,

3、显示总内存大小(单位m),使用率

4、磁盘/(根)目录大小(单位m),使用率。

5、显示当前时间:import datatime

6、本机ip是多少,网络使用情况,收发多少m数据

7、将这些使用情况保存到一个文件中。

单位转换:字节(bite)-兆(M)-G(1024)

直接打印输出:

import psutil #是一个功能强大的跨平台的系统管理库
import datetime
import time
def func1():
    # #cpu的逻辑核数
    cpu_core = psutil.cpu_count(logical=False)
    # cpu的使用率
    # time.sleep(1) #睡眠一秒钟
    cup_per = psutil.cpu_percent(interval=1)#每隔1秒刷新一下
    # 内存信息
    memory_info = psutil.virtual_memory()
    # 硬盘信息
    disk_info = psutil.disk_usage("/") #根目录磁盘信息
    # 网络信息
    net_info = psutil.net_io_counters()
    #接收数据
    in_info = net_info.bytes_recv
    #发送数据:
    send_info = net_info.bytes_sent
    #本机ip
    ip_add = psutil.net_if_addrs()
    # print(ip_add)
    ##windows中的ip截取:
    #ip_add1 = ip_add['本地连接* 13'][2][1]
    #Linux中的ip截取
    ip_add1 = ip_add['ens33'][0][1]
    # 获取当前系统时间
    current_time = datetime.datetime.now().strftime("%F %T")  #%F年月日 %T时分秒
#方式一:直接打印输出
    print(f"当前时间为:{current_time}")
    print(f"cpu的逻辑核数为:{cpu_core}")
    print(f"cpu的使用率为:{cup_per}%")
    print(f"总内存大小为:{memory_info.total/1024/1024}M")
    print(f"根目录大小为:{disk_info.total/1024/1024}M")
    # print(f"本机的ip为{ip_add1}")
    print(f"网络使用情况为:接收的数据为:{in_info/1024/1024}M,发送的数据为:{send_info/1024/1024}M")
字节(bite)-兆(M)-G(1024)
start = time.time()
end = time.time()
count = 0
while end - start < 10:
    count += 1
    end = time.time()
    time.sleep(1)
    print(f"第{count}次")
    func1()

设计的界面更加好看完善:

import psutil #是一个功能强大的跨平台的系统管理库
import datetime
import time
def func():
    # cpu的使用率
    cup_per = psutil.cpu_percent(interval=0.5)  # 0.5刷新频率
    time.sleep(1)  # 睡眠一秒钟
    # cpu的逻辑核数
    cpu_core = psutil.cpu_count(logical=False)
    # 内存信息
    memory_info = psutil.virtual_memory()
    # 硬盘信息
    disk_info = psutil.disk_usage("/")  # 根目录磁盘信息
    # 获取当前系统时间
    current_time = datetime.datetime.now().strftime("%F %T")  # %F年月日 %T时分秒
    # 获取网络信息
    network = psutil.net_io_counters()
    # 接收数据
    in_info = network.bytes_recv
    #发送数据:
    send_info = network.bytes_sent
    # 本机ip
    ip_add = psutil.net_if_addrs()
    print(ip_add)
    #windows中的ip截取:
    ip_add1 = ip_add['本地连接* 13'][2][1]
    # #Linux中的ip截取
    # ip_add1 = ip_add['ens33'][0][1]
    # 方式二:拼接显示
    log_str = "|---------------------|----------|---------------|--------------|----------------------------------------|\n"
    log_str += "|---------time--------|---cpu----|-----memory----|-----disk-----|----------------network-----------------|\n"
    log_str += "|                     |   %dcore  |   %.2fM    |  %.2fM   |      ip:%s                 |\n" \
               % (cpu_core, memory_info.total/1024/1024, disk_info.total/1024/1024,  ip_add1)
    log_str += "| %s |   %s%%   |     %s%%     |     %s%%    |      in: %.2fM    out: %.2fM       |\n" \
               % (current_time, cup_per, memory_info.percent, disk_info.percent,in_info/1024/1024,send_info/1024/1024)
    print(log_str)
    # 保存信息到文件
    with open("log.txt", "a+") as f:
        f.write(log_str + "\n\n")  # 写入信息
#方式二:循环
count = 0
for i in range(10):
    count += 1
    print(f"第{count}秒监控到的信息".center(50,"*"))
    func()


相关文章
|
12月前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
510 2
|
传感器 数据采集 监控
Python生成器与迭代器:从内存优化到协程调度的深度实践
简介:本文深入解析Python迭代器与生成器的原理及应用,涵盖内存优化技巧、底层协议实现、生成器通信机制及异步编程场景。通过实例讲解如何高效处理大文件、构建数据流水线,并对比不同迭代方式的性能特点,助你编写低内存、高效率的Python代码。
447 0
|
数据可视化 Linux iOS开发
Python测量CPU和内存使用率
这些示例帮助您了解如何在Python中测量CPU和内存使用率。根据需要,可以进一步完善这些示例,例如可视化结果或限制程序在特定范围内的资源占用。
548 22
|
API Python
VIN码查询API的实战指南:获取二手车信息以Python为例
随着机动车保有量上升,中国二手车市场迎来发展机遇。本文介绍如何通过VIN码查询API获取车辆详细信息,提升交易透明度与安全性。
595 1
|
前端开发 数据安全/隐私保护 Python
虚拟物流单号生成器, 虚拟快递单号假物流信息, 虚拟快递单号在线生成【python框架】
这个虚拟物流单号生成系统包含以下功能:支持多种主流快递公司的单号生成
|
数据安全/隐私保护 数据格式 Python
快递单号模拟生成器, 虚拟物流信息在线生成,虚假快递单号生成器【python】
支持多种主流快递公司生成符合各快递公司规则的快递单号自动生成收发件人信息
|
JSON 前端开发 API
快递单号生成器在线, 快递单号模拟生成器, 虚拟物流信息在线生成【python】
项目包含三个主要模块:快递单号生成器核心逻辑、Flask Web应用程序和前端HTML页面
|
JSON API 数据安全/隐私保护
车辆五项信息查询 API 的实践指南:通过Python调用赋能车辆信息标准化
本API通过车牌号快速获取车辆五项核心信息,包括品牌、登记日期、车架号等,助力二手车评估、维修、保险等场景实现数字化转型。数据源自权威公安交管库,日更同步,毫秒级响应,满足高并发需求,符合隐私保护规范,是推动汽车后市场智能化的重要工具。
934 0
|
数据采集 存储 数据可视化
Python爬取招标信息并生成可视化分析报告
Python爬取招标信息并生成可视化分析报告
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
3603 0

推荐镜像

更多