Python脚本实现对Linux服务器CPU、内存、磁盘空间以及负载情况的监测
一、前言
通常情况下,为了知悉服务器的相关信息,如果只是靠人为去挨个查询服务器相关性能的话,会比较耗时,一般情况下,我们可以通过编写Python脚本来实现对服务器性能的实时检测,每次想要查询服务器性能的时候,可以通过执行该脚本,即可知晓。
注:也可以通过设置定时任务来执行该脚本,实现在不同时间段对服务器性能的检测
二、Python实现方式
1、脚本编写
# -*- coding:utf-8 -*- -
import os, timelast_worktime=0
last_idletime=0def get_cpu():global last_worktime, last_idletimef=open("/proc/stat","r")line=""while not "cpu " in line: line=f.readline()f.close()spl=line.split(" ")worktime=int(spl[2])+int(spl[3])+int(spl[4])idletime=int(spl[5])dworktime=(worktime-last_worktime)didletime=(idletime-last_idletime)rate=float(dworktime)/(didletime+dworktime)last_worktime=worktimelast_idletime=idletimeif(last_worktime==0): return 0return ratedef get_mem_usage_percent():try:f = open('/proc/meminfo', 'r')for line in f:if line.startswith('MemTotal:'):mem_total = int(line.split()[1])elif line.startswith('MemFree:'):mem_free = int(line.split()[1])elif line.startswith('Buffers:'):mem_buffer = int(line.split()[1])elif line.startswith('Cached:'):mem_cache = int(line.split()[1])elif line.startswith('SwapTotal:'):vmem_total = int(line.split()[1])elif line.startswith('SwapFree:'):vmem_free = int(line.split()[1])else:continuef.close()except:return Nonephysical_percent = usage_percent(mem_total - (mem_free + mem_buffer + mem_cache), mem_total)virtual_percent = 0if vmem_total > 0:virtual_percent = usage_percent((vmem_total - vmem_free), vmem_total)return physical_percent, virtual_percentdef usage_percent(use, total):try:ret = (float(use) / total) * 100except ZeroDivisionError:raise Exception("ERROR - zero division error")return retstatvfs = os.statvfs('/')total_disk_space = statvfs.f_frsize * statvfs.f_blocks
free_disk_space = statvfs.f_frsize * statvfs.f_bfree
disk_usage = (total_disk_space - free_disk_space) * 100.0 / total_disk_space
disk_usage = int(disk_usage)
disk_tip = "硬盘空间使用率(最大100%):"+str(disk_usage)+"%"
print(disk_tip)mem_usage = get_mem_usage_percent()
mem_usage = int(mem_usage[0])
mem_tip = "物理内存使用率(最大100%):"+str(mem_usage)+"%"
print(mem_tip)cpu_usage = int(get_cpu()*100)
cpu_tip = "CPU使用率(最大100%):"+str(cpu_usage)+"%"
print(cpu_tip)load_average = os.getloadavg()
load_tip = "系统负载(三个数值中有一个超过3就是高):"+str(load_average)
print(load_tip)
2、Linux服务器文件创建
可通过在Linux服务器上touch创建一个py文件,然后为该文件附上权限。即可执行
效果如下:
python test.py
这样可以即时快速的判断服务器的相关性能,定位服务器环境问题。
Python脚本实现对Linux服务器CPU、内存、磁盘空间以及负载情况的监测相关推荐
- 用Python脚本实现对Linux服务器的监控
一.前言 二.概述 三.Python 版本说明 四./proc 文件系统 五.对CPU监测 六.对系统负载监测 七.对内存信息的获取 八.对网络接口的监测 九.监控apache服务器进程的Python ...
- 用 Python 脚本实现对 Linux 服务器的监控
版本说明 Linux 服务器是 Ubuntu 12.10 Python 版本 是 2.7 工作原理:基于/proc 文件系统 Linux 系统为管理员提供了非常好的方法,使其可以在系统运行时更改内核, ...
- python glances来监控linux服务器CPU 内存 IO使用
什么是 Glances? Glances 是一个由 Python 编写,使用 psutil 库来从系统抓取信息的基于 curses 开发的跨平台命令行系统监视工具. 通过 Glances,我们可以监视 ...
- 用python监控磁盘_使用python怎么对服务器cpu和磁盘空间进行监控
使用python怎么对服务器cpu和磁盘空间进行监控 发布时间:2021-01-29 17:16:55 来源:亿速云 阅读:82 作者:Leah 这期内容当中小编将会给大家带来有关使用python怎么 ...
- Linux服务器CPU、内存、磁盘空间、负载情况查看python脚本
[本文出自天外归云的博客园] 网上搜,东拼西凑,组装了一个可以查Linux服务器CPU使用率.内存使用率.磁盘空间占用率.负载情况的python脚本. 脚本内容如下: # -*- coding:utf ...
- linux系统CPU,内存,磁盘,网络流量监控脚本
前序 1, #cat /proc/stat/ 信息包含了所有CPU活动的信息,该文件中的所有值都是从系统启动开始累积到当前时刻 2, #vmstat –s 或者 #vmstat 虚拟内存统 ...
- AIX和LINUX主机 CPU 内存 磁盘使用率监控
AIX监控 磁盘使用率监控 df -g|grep -v Filesystem|grep -v proc|awk ' gsub(/%/,"",$4) {print $7 " ...
- linux 负载高 cpu低,Linux服务器CPU使用率较低但负载较高
CPU使用率较低但负载较高 问题描述 Linux 系统没有业务程序运行,通过 top 观察,类似如下图所示,CPU 很空闲,但是 load average 却非常高,如下图所示. 处理办法 load ...
- 如何增加服务器磁盘空间,linux 服务器如何扩展磁盘空间
如果碰到服务器存储空间不够,你会增加磁盘空间吗? 注意:是运行状态的服务器哦,所以不可以关机影响使用. 这就需要用到LVM,前提是安装服务器时做好规划. 1.创建分区,先观察一下卷组 # vgdisp ...
- java远程关机_通过jsch实现对linux服务器的shell客户端远程控制关机完整示例代码分享...
一.前言 由于前些阵子想找个ssh客户端 for android实现在手机上可以远程控制Centos服务器实现在手机上远程关机操作,找了一圈没有合适的,因此自己想通过linux的客户端接入包jsch实 ...
最新文章
- Java遍历对象所有属性
- Lucene 基础知识
- (建议收藏)matlab在线性代数问题中的计算机求解进阶问题及解决方案集锦
- Recommended Journals for MPhil degree at Business Model Innovation Group
- koa2 mysql增删改查_react+koa2+mysql零门槛的全栈体验,附上完整项目分享
- Firefox-常用扩展
- VB589语音识别芯片开发
- 公司计算机 统一购买 补贴,全国农机购置补贴计算机管理系统开始全面启用
- k8s与caas--容器云caas平台的落地实践
- 软件工程---gjb438b 质量规范体系
- 教你怎么学习arcgis软件①
- 如何用ps裁剪规定像素的图片
- sqoop 导出hive数据到MySQL数据库当中
- php调用shell执行scp,使用shell脚本自动执行scp文件传输
- 如何使用“迁移助理”将文件从旧 Mac 移到新Mac?
- android学习笔记之GoogleMap
- 谏太宗十思疏 魏征(原文/译文)
- 平衡树学习笔记之 fhq Treap
- 电力电子与电力传动类毕业论文文献包含哪些?
- 面试经历---广东耶萨智能科技股份有限公司(2016年01月11日上午面试)