查看“Python实现Linux操作系统负载、CPU、网络内存、监控”的源代码
←
Python实现Linux操作系统负载、CPU、网络内存、监控
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
== Python实现Linux操作系统负载、CPU、网络内存、监控 == 在Linux中要查看系统负载、CPU利用率、网络和内存等状况,我们要使用以下命令: 系统负载, CPU使用率-般使用top等命令揸看<br> 内存查看,-般使用free, vmstat 等命令查看<br> 网络流量,我们一般使用iftop等命令查看<br> 如果用Python去实现这些参数的查看和监控,我们可用调用shell值,从而得到监控的内容,这样的话直接用shell监控就可以了,但是我们运维开发的时候,服务端要获取客户端运行状态的时候,一般会用python和golang语言编写部署在其他机器上。 如果查看Linux操作系统的负载情况,我们用Python实现的原理通过查看文件/proc/loadavg的内容去实现。 我们先查看一下文件内容 [[文件:2020-08-08 220429.png]] 前三个数字是1,5,15分钟内的平均进程数 第四个值是正在运行的进程数分母是进程总数,最后一个是最近运行的进程ID号。 '''使用Python监控Linux操作系统的负载情况''' 编写python脚本 定义一个load_stat函数用来打开关闭文件,然后读取里面的文件存到数据结构里 split函数用于对字符串接片,然后存到列表里面,然后把列表索引值存放到新字典里面 代码如下: loadavg = {} def load_stat(): f = open("/proc/loadavg") con = f.read().split() f.close() loadavg['lavg_1']=con[0] loadavg['lavg_5']=con[1] loadavg['lavg_15']=con[2] return loadavg load_stat() print(loadavg) print("load1:"+loadavg["lavg_1"]) 为了能够读取/proc/loadavg里的文件,我们可以定义一个函数load_ stat()函数 用来打开文件和关闭。然后读取里面的文件存到一个数据结构里,当然数据结构你可以采用List,也可以采用Dict。 运行结果: [[文件:2020-08-09 140846.png]] '''使用Python监控Linux操作系统的内存使用情况''' 计算内存的利用率原理是需要读取的是/proc/meminfo文件,该文件的结构比较清晰,不需要额外的介绍,需要知道的是内存的使用总量为used=total-free-buffers-cached 查看/proc/meminfo [[文件:2020-08-09 143233.png]] MemTotal:表示所有可用RAM大小即内存 MemAvailable:表示可用内存数 Buffers:给文件做缓冲大小 cached:缓存,用于已打开的文件 实现代码如下: #coding:utf-8 with open("/proc/meminfo") as meminfo: for i in meminfo: if i.startswith("MemTotal"): total_mem = i.split() total_mem = total_mem[1] continue elif i.startswith("MemAvailable"): free_mem = i.split() free_mem = free_mem[1] continue elif i. startswith("Buffers"): buff_mem = i.split() buff_mem= buff_mem[1] elif i. startswith("Cached"): cache_mem = i.split() cache_mem = cache_mem[1] break else: pass used_mem =float(total_mem)-float(free_mem)-float(buff_mem)-float(cache_mem) print(used_mem) #使用内存 res = used_mem/float(total_mem) print(res) #内存使用率 [[文件:2020-08-09 151233.png]] 运行结果: [[文件:2020-08-09 151459.png]] '''Python获取网卡信息''' psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU、内存、磁盘、网络等信息。之前的查看Linux系统的负载和内存使用情况实现都可以用psutil 库去实现。 psutil实现: >>> import psutil 导入库 >>> >>> psutil.net_if_addrs()['eth0'][0].address 查看eth0的IP地址 '172.26.142.43' >>> >>> psutil.net_if_addrs()['eth0'][0].netmask 子网掩码 '255.255.240.0' >>> >>> psutil.net_if_stats()['eth0'].isup 查看网卡是否开启 True >>> >>> psutil.net_if_stats()['eth0'].speed 查看网卡速率 0 >>> [[文件:2020-08-09 152540.png]] '''使用Python监控Linux操作系统的CPU使用情况''' 使用psutil查看代码如下: #coding:utf-8 #@Author:knight import psutil #检测CPU使用率 print(psutil.cpu_percent(interval=20,percpu=False)) #查看CPU的总体使用情况 print(psutil.cpu_times_percent()) #查看每个CPU的使用情况 print(psutil.cpu_times_percent(percpu=True)) #CPU的使用率 psutil.cpu_percent() #查看物理CPU的个数 print(psutil.cpu_count(logical=False)) [[文件:2020-08-09 155602.png]]
返回至
Python实现Linux操作系统负载、CPU、网络内存、监控
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息