import psutil,sys
def get_info_cpu():
# 获取CPU的逻辑个数
cpu_counts = psutil.cpu_count()
# 获取CPU运行时间 ,可以进一步查看系统运行时间,空闲时间、用户空间运行时间等
cpu_times = psutil.cpu_times_percent(percpu=True)
#获取CPU状态
cpu_stats = psutil.cpu_stats()
print("服务区CPU的个数为: {}\nCPU运行时间{}\nCPU状态{}".format(cpu_counts,cpu_times,cpu_stats))
def get_mem_info():
mem = psutil.virtual_memory()
# 总内存
total_mem = int(mem.total/1024/1024)
# 已用内存
user_mem = int(mem.used/1023/1024)
# 空闲内存
free_mem = int(mem.free/1024/1024)
print("服务器总内存:{}M,\n已用内存:{}M,\n空闲内存:{}M".format(total_mem,user_mem,
free_mem))
def get_disk():
# 获取所有磁盘信息
disk_info = psutil.disk_partitions()
length = len(disk_info)
for disk in disk_info:
u = psutil.disk_usage(disk[0])
print("磁盘{},已经{}G,空闲{}G,使用率{}%".format(
disk[0],str(int(u[1]/1024/1024/1024)),
str(int(u[2]/1024/1024/1024)),
u[3]))
def get_net():
info = psutil.net_io_counters()
print("bytes_sent: {}\nbytes_recv:{}\npackets_sent:{}\npackets_reve:{}".format(info[0],info[1],info[2],info[3]))
def get_pid():
pids = psutil.pids()
for i in pids:
print("进程名:{},进程ID:{},进程状态{}".format(psutil.Process(i).name,
psutil.Process(i).pid,
psutil.Process(i).status()
))
if __name__ == '__main__':
msg = input("请输入需要查看的系统信息:(cpu|mem|net|pid)")
if msg:
if msg == 'cpu':
get_info_cpu()
elif msg == 'mem':
get_mem_info()
elif msg == 'net':
get_net()
elif msg == 'pid':
get_pid()
else:
print("输入不合法,程序退出")
sys.exit(1)
else:
print("输入为空,程序退出")
sys.exit(1)
说明:对系统基础信息获取,从而进一步进行监控;这里只是做个小小演示,了解psutil模块的基本使用,延伸后可以做预警、报警等操作