使用python编写一个监控脚本,放在Linux系统运行。监控的要求如下:
1.显示当前时间
2.脚本运行之后监控10s,每隔一秒钟输出一次信息
3.显示当前系统CPU的逻辑核数、平均使用率
4.显示总内存的大小(单位M),内存的使用率
5.显示根目录的大小(单位M),根目录的使用率
6.本机的IP地址是多少,网络使用情况,收发了多少m的数据
[root@xieshan python-test]# vim monitor.py
[root@xieshan python-test]# cat monitor.py
import psutil
import datetime
import time
def func1():
# CPU的逻辑核数
cpu_count = psutil.cpu_count()
# cpu的使用率
cup_per = psutil.cpu_percent(interval=0.5) # 0.5刷新频率
print(f"cpu的逻辑核数为{cpu_count},cpu的平均使用率为{cup_per}")
# 内存信息
memory_info = psutil.virtual_memory()
# 总内存
memory_total = memory_info.total / 1024 / 1024
# 内存使用率
#memory_per = (memory_total - memory_info.available) / memory_total * 100
memory_per = memory_info.percent
print(f"总内存大小为{memory_total}M,内存的使用率为{memory_per}")
# 硬盘信息
disk_info = psutil.disk_usage("/") # 根目录磁盘信息
#print(disk_info)
# 根目录大小
disk_total = disk_info.total
# 根目录使用情况
disk_per = float(disk_info.used / disk_total * 100 )
print(f"根目录大小为{disk_total / 1024 / 1024}M,根目录使用率为{round(disk_per,2)}")
# 网络使用情况
net = psutil.net_io_counters()
#print(net)
# 网卡配置信息
net_ipy = psutil.net_if_addrs()
#print(f"net_ipy {net_ipy}")
net_ip = net_ipy['ens33'][0][1]
print(f"本机的IP地址为{net_ip}")
# 收取数据
net_recv = float( net.bytes_recv / 1024 /1024)
# 发送数据
net_sent = float(net.bytes_sent /1024 /1024)
print(f"网络收取{round(net_recv,2)}M的数据,发送{round(net_sent,2)}M的数据")
# 获取当前系统时间
current_time = datetime.datetime.now().strftime("%F %T") # %F年月日 %T时分秒
print(f"当前时间是:{current_time}")
time.sleep(1)
start = time.time()
end = time.time()
count = 0
while end - start <= 10:
count += 1
end = time.time()
print(f"执行第{count}次".center(50,'*'))
func1()
[root@xieshan python-test]#
执行结果如下:
[root@xieshan python-test]# python3 monitor.py
**********************执行第1次***********************
cpu的逻辑核数为1,cpu的平均使用率为2.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.84M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:32:53
**********************执行第2次***********************
cpu的逻辑核数为1,cpu的平均使用率为0.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.84M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:32:54
**********************执行第3次***********************
cpu的逻辑核数为1,cpu的平均使用率为0.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.84M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:32:56
**********************执行第4次***********************
cpu的逻辑核数为1,cpu的平均使用率为0.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.85M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:32:57
**********************执行第5次***********************
cpu的逻辑核数为1,cpu的平均使用率为0.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.85M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:32:59
**********************执行第6次***********************
cpu的逻辑核数为1,cpu的平均使用率为0.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.85M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:33:00
**********************执行第7次***********************
cpu的逻辑核数为1,cpu的平均使用率为2.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.85M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:33:02
**********************执行第8次***********************
cpu的逻辑核数为1,cpu的平均使用率为0.0
总内存大小为972.5546875M,内存的使用率为41.2
根目录大小为17394.0M,根目录使用率为22.26
本机的IP地址为192.168.0.43
网络收取186.85M的数据,发送4.65M的数据
当前时间是:2022-06-20 18:33:03
[root@xieshan python-test]#