用python监控服务器的cpu,磁盘空间,内存,超过邮件报警


Posted in Python onJanuary 29, 2021

监控Linux服务器嘛,脚本逻辑基本上是用os.popen模块,然后把获取到的结果通过split切分成一个list,再拿目标list值和我阈值对比,超过就邮件报警;

邮件是通过Linux的mailx发出去的,可自行搜索安装该模块,关键字:“Linux使用mailx发邮件”,脚本如下: 

一、cpu ideal值,不小于20%

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import datetime
import os
 
 
f = os.popen('vmstat').readlines()
cpu_ideall = str(f).split()[-3]
if int(cpuideall) > 20:
    mail_content = "echo 'ip:IP地址(vmstat)' | mailx -s '[Warning!]CPU ideal below 20%, please check!' 收件邮箱"
    os.popen(mail_content)
else:
    pass

二、磁盘空间,不大于95%

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import datetime
import os
 
 
f = os.popen('df -lh').readlines()
s = []
s.append(str(f).split()[11].split('%')[0])
s.append(str(f).split()[-8].split('%')[0])
s.append(str(f).split()[-2].split('%')[0])
print s
 
i = 0
while i < len(s):
    if int(s[i]) > 95:
    mail_content = "echo 'ip:ip地址(df -lh)' | mailx -s '[Warning!]Disk above 95%, please check!' 收件邮件"
        os.popen(mail_content)
    else:
    pass
    i = i + 1

三、内存利用率,不低于200

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import datetime
import os
 
 
f = os.popen('free -m').readlines()
memm = str(f).split()[10]
if int(memm) < 200:
    mail_content = "echo 'ip:ip地址(free -m)' | mailx -s '[Warning!]MEM below 200, please check!' 收件邮箱"
    os.popen(mail_content)
else:
    pass

以上就是用python监控服务器的cpu,磁盘空间,内存,超过邮件报警的详细内容,更多关于python监控服务器的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
基于python log取对数详解
Jun 08 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
Python中函数参数匹配模型详解
Jun 09 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
在Python中append以及extend返回None的例子
Jul 20 Python
Python基础之列表常见操作经典实例详解
Feb 26 Python
Python爬虫实现vip电影下载的示例代码
Apr 20 Python
Python 机器学习工具包SKlearn的安装与使用
May 14 Python
用python画城市轮播地图
May 28 Python
Python Flask实现进度条
May 11 Python
python热力图实现简单方法
Jan 29 #Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 #Python
python3定位并识别图片验证码实现自动登录功能
Jan 29 #Python
python中numpy数组与list相互转换实例方法
Jan 29 #Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 #Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 #Python
python中spy++的使用超详细教程
Jan 29 #Python
You might like
PHP中常用数组处理方法实例分析
2008/08/30 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
PHP7.1方括号数组符号多值复制及指定键值赋值用法分析
2016/09/26 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
jQuery :nth-child前有无空格的区别分析
2011/07/11 Javascript
javascript删除一个html元素节点的方法
2014/12/20 Javascript
JavaScript小技巧整理篇(非常全)
2016/01/26 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
浅谈webpack对样式的处理
2018/01/05 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
vue中渲染对象中属性时显示未定义的解决
2020/07/31 Javascript
Vue实现手机计算器
2020/08/17 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
[00:57]深扒TI7聊天轮盘语音出处5
2017/05/11 DOTA
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
python中日期和时间格式化输出的方法小结
2015/03/19 Python
Cpy和Python的效率对比
2015/03/20 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
Python二叉搜索树与双向链表转换实现方法
2016/04/29 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
canvas使用注意点总结
2013/07/19 HTML / CSS
Html5自定义字体解决方法
2019/10/09 HTML / CSS
详解HTML5.2版本带来的修改
2020/05/06 HTML / CSS
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
建筑公司员工自我鉴定
2014/04/08 职场文书
普通话宣传标语
2014/06/26 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
python多次执行绘制条形图
2022/04/20 Python