自带的方法能够用来方便的对操作系统硬件状态进行监控
获取当前进程pid和名称
1 2 3 4
| import psutil for proc in psutil.process_iter(['pid','name']): print(f"PID:{proc.info['pid']}, Name:{proc.info['name']}")
|
获取操作系统各个分区磁盘使用情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import psutil
def get_disk_usage(): partitions = psutil.disk_partitions() for partition in partitions: usage=psutil.disk_usage(partition.mountpoint) total_gb=usage.total / (2**30) usage_gb=usage.used / (2**30) free_gb=usage.free / (2**30) print(f"挂载点:{partition.mountpoint}") print(f"总空间:{total_gb:.2f}GiB") print(f"已用空间:{usage_gb:.2f}GiB") print(f"剩余空间:{free_gb:.2f}GiB") print("_"*30)
get_disk_usage()
|
获取硬件使用情况报告
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import psutil import shutil import datetime
def get_system_hardware_report(): report=[] report.append(f"报告生成时间:{datetime.datetime.now().strftime('%m-%d')}") report.append(f"CPU使用率:{psutil.cpu_percent()}%") report.append(f"内存使用率:{psutil.virtual_memory().percent}%") total,used,free=shutil.disk_usage('/') report.append(f"磁盘总空间:{total//(2**30)}GiB") report.append(f"磁盘已用空间:{used//(2**30)}GiB") report.append(f"磁盘剩余空间:{free//(2**30)}GiB") return "\n".join(report)
print(get_system_hardware_report())
|
获取网络接受数据情况
1 2 3 4 5 6 7 8 9 10
| import psutil
def get_network_status(): net_io=psutil.net_io_counters() print(f"总接受字节数:{net_io.bytes_recv/(2**20):.2f}MB") print(f"总发送字节数:{net_io.bytes_sent/(2**20):.2f}MB") get_network_status()
|
获取CPU使用率
1 2 3 4 5 6 7 8
| import psutil def get_cpu_percent(): cpu_percent=psutil.cpu_percent(interval=1,percpu=True) print(f"每个CPU使用率:{cpu_percent}") print(f"整体CPU使用率:{psutil.cpu_percent()}") get_cpu_percent()
|
获取物理内存与交换分区情况
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| import psutil def get_memory_usage(): virtual_memory = psutil.virtual_memory() swap_memory = psutil.swap_memory() print(f"物理内存总量:{virtual_memory.total/(2**30):.2f}GiB") print(f"物理内存已用:{virtual_memory.used/(2**30):.2f}GiB") print(f"物理内存剩余:{virtual_memory.free/(2**30):.2f}GiB") print(f"交换分区总量:{swap_memory.total/(2**30):.2f}GiB") print(f"交换分区已用:{swap_memory.used/(2**30):.2f}GiB") print(f"交换分区剩余:{swap_memory.free/(2**30):.2f}GiB")
get_memory_usage()
|
获取系统负载
1 2 3 4 5 6 7 8 9
| import psutil def get_sys_load(): load=psutil.getloadavg() print(f"系统1分钟负载:{load[0]}") print(f"系统5分钟负载:{load[1]}") print(f"系统15分钟负载:{load[2]}") get_sys_load()
|