python 运维脚本 之 输出系统信息(VScode)

psutil模块是一个跨平台的获取进程和系统应用情况(CPU,内存,磁盘,网络,传感器)的库。该模块用于系统监控、限制进程资源和运行进程的管理等方面。
安装module

py -m pip install psutil

CPU:

>>> psutil.cpu_count() #cpu逻辑数量
4
>>> psutil.cpu_count(logical=False) # CPU物理核心
2
>>> psutil.cpu_percent() # CPU当前使用率
4.2

内存

>>> mem = psutil.virtual_memory() # 实例化内存对象
>>> mem.total  # 系统总计内存
17178693632
>>> mem.used  # 系统已经使用内存
4633444352
>>> mem.free # 系统空闲内存
12545249280
>>> mem.used/mem.total #内存使用率百分比
0.2697204136273172
>>> psutil.swap_memory() # swap内存信息
sswap(total=2550136832, used=232665088, free=2317471744, percent=9.1, sin=0, sout=0)

硬盘

>>> psutil.disk_usage('/')
sdiskusage(total=135771664384, used=21782020096, free=113989644288, percent=16.0)

网络

>>> psutil.net_io_counters() #网络总io
snetio(bytes_sent=856264410, bytes_recv=424610682, packets_sent=504832, packets_recv=326307, errin=0, errout=0, dropin=0, dropout=0)
>>> psutil.net_io_counters(pernic=True) #网卡io
{'Ethernet': snetio(bytes_sent=862100800, bytes_recv=426788416, packets_sent=509751, packets_recv=329008, errin=0, errout=0, dropin=0, dropout=0), 'Loopback Pseudo-Interface 1': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0)}

开机时间:

>>> import datetime
>>> psutil.boot_time()
1670463972.9816532
>>> datetime.datetime.fromtimestamp(psutil.boot_time ()).strftime("%Y-%m-%d %H: %M: %S")
'2022-12-08 01: 46: 12'

汇总:

# os模块, operate system, 跟操作系统相关的方法, 多是文件操作等
import os
import  platform
from datetime import  datetime
import  time
import psutil
import prettytable
try:
    # os.uname在windows系统中不能执行  需要进行异常处理
    system_info = os.uname()
except Exception as e:
    system_info = platform.uname()

#获取的是开机时间的时间戳
boot_time = psutil.boot_time()
#将开机时间转化为字符串时间
boot_time =  datetime.fromtimestamp(boot_time)
now_time =  datetime.fromtimestamp(time.time())
 
print("""
***********************************主机信息监控********************************
        主机名: %s
        操作系统: %s
        内核名称: %s
        发行版本号: %s
        内核版本: %s
        系统架构: %s
        当前时间: %s
        开机时间: %s
        开机时长: %s
""" %(system_info.node, system_info.system, system_info.system,
      system_info.release, system_info.version, system_info.machine,
      now_time, boot_time, now_time-boot_time
))


##绘制出表格
##物理CPU个数
#逻辑CPU=物理CPU个数*核数
print("-------------------CPU信息------------------")
print("物理CPU个数:",psutil.cpu_count(logical=False))
print("逻辑CPU个数:",psutil.cpu_count())
##CPU使用率
print("CPU的使用率:",psutil.cpu_percent())
print("-------------------网络信息------------------")
print("网络总io:", psutil.net_io_counters())
print("网卡io:", psutil.net_io_counters(pernic=True))
print("-------------------内存信息------------------")
memory = psutil.virtual_memory()
print("总内存大小:",memory.total)
print("已使用的内存大小:",memory.used)
print("内存使用率:",memory.percent)
print("-------------------磁盘信息------------------")
pt = prettytable.PrettyTable(field_names=["分区名称","挂载点",
                                          "文件系统类型","属性",
                                          "磁盘总容量","磁盘使用百分比(单位%)"])
parts =psutil.disk_partitions()
for part in parts:
    #查看当前磁盘分区的使用率
    usage = psutil.disk_usage(part.device)
    #往表格中添加一行记录
    pt.add_row([part.device,part.mountpoint,part.fstype,part.opts,usage.total,usage.percent])
print(pt)


输出:

***********************************主机信息监控********************************
        主机名: DaisyWindows
        操作系统: Windows
        内核名称: Windows
        发行版本号: 10
        内核版本: 10.0.17763
        系统架构: AMD64
        当前时间: 2022-12-12 03:16:26.661356
        开机时间: 2022-12-12 02:16:55.661355
        开机时长: 0:59:31.000001

-------------------CPU信息------------------
物理CPU个数: 2
逻辑CPU个数: 4
CPU的使用率: 37.5
-------------------网络信息------------------
网络总io: snetio(bytes_sent=1325347077, bytes_recv=295170560, packets_sent=459948, packets_recv=290620, errin=0, errout=0, dropin=0, dropout=0)
网卡io: {'Ethernet': snetio(bytes_sent=1325347131, bytes_recv=295170560, packets_sent=459949, packets_recv=290620, errin=0, errout=0, dropin=0, dropout=0), 'Loopback Pseudo-Interface 1': snetio(bytes_sent=0, bytes_recv=0, packets_sent=0, packets_recv=0, errin=0, errout=0, dropin=0, dropout=0)}
-------------------内存信息------------------
总内存大小: 17178693632
已使用的内存大小: 4413034496
内存使用率: 25.7
-------------------磁盘信息------------------
+----------+--------+--------------+----------+--------------+-----------------------+

| 分区名称 | 挂载点 | 文件系统类型 |   属性   |  磁盘总容量  | 磁盘使用百分比(单位%) |

+----------+--------+--------------+----------+--------------+-----------------------+

|   C:\    |  C:\   |     NTFS     | rw,fixed | 135771664384 |          15.3         |

|   D:\    |  D:\   |     NTFS     | rw,fixed | 34357637120  |          7.7          |

+----------+--------+--------------+----------+--------------+-----------------------+


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值