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()


相关文章
|
11天前
|
Linux 数据处理
Linux中的nproc命令:轻松查看系统CPU核心数
`nproc`命令在Linux中用于查看CPU核心数,简洁高效,无参数直接运行。它读取`/proc/cpuinfo`获取信息,适用于资源分配。例如,`nproc`显示核心数,`nproc --all`(非标准选项,可能需结合其他命令)展示更多详情。在脚本中,可将`nproc`输出赋值给变量以适应动态资源管理。使用时注意文件访问权限,检查结果准确性,并结合其他工具如`lscpu`获取更全面硬件信息。
|
7天前
|
Java 程序员 Linux
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
探索C语言宝库:从基础到进阶的干货知识(类型变量+条件循环+函数模块+指针+内存+文件)
13 0
|
7天前
|
Linux Perl
如何在Linux系统中确定CPU架构
如何在Linux系统中确定CPU架构
12 0
|
16天前
|
缓存 监控 Linux
深入了解Linux的`lscpu`命令:你的CPU信息专家
`lscpu`是Linux下的命令行工具,用于获取CPU详细信息,如架构、核心、线程、缓存和型号。它从系统文件读取数据,提供实时信息,支持多种输出格式,如扩展视图、解析格式。常用参数包括显示所有CPU (`-a`)、在线CPU (`-b`) 和可解析格式 (`--parseable`)。结合其他工具,`lscpu`在系统管理和性能调优中十分有用。
|
2月前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
99 4
|
2月前
|
移动开发 运维 监控
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
掌握Linux运维利器:查看CPU和内存占用,轻松解决性能问题!
137 0
|
2月前
|
移动开发 Linux
Linux下如何查看哪些进程占用的CPU内存资源最多
Linux下如何查看哪些进程占用的CPU内存资源最多
|
2月前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
152 10
|
2月前
|
存储 弹性计算 固态存储
阿里云服务器CPU内存配置详细指南,如何选择合适云服务器配置?
阿里云服务器配置选择涉及CPU、内存、公网带宽和磁盘。个人开发者或中小企业推荐使用轻量应用服务器或ECS经济型e实例,如2核2G3M配置,适合低流量网站。企业用户则应选择企业级独享型ECS,如通用算力型u1、计算型c7或通用型g7,至少2核4G配置,公网带宽建议5M,系统盘可选SSD或ESSD云盘。选择时考虑实际应用需求和性能稳定性。
617 6
|
16天前
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程
汇编语言(第四版) 实验一 查看CPU和内存,用机器指令和汇编指令编程