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()
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值