用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下尝试多线程编程
Apr 28 Python
在Python中操作时间之mktime()方法的使用教程
May 22 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Django之PopUp的具体实现方法
Aug 31 Python
给你一面国旗 教你用python画中国国旗
Sep 24 Python
python线程信号量semaphore使用解析
Nov 30 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
Scrapy模拟登录赶集网的实现代码
Jul 07 Python
python实现excel公式格式化的示例代码
Dec 23 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 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/01/07 PHP
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
jcrop基本参数一览
2013/07/16 Javascript
XMLHttpRequest处理xml格式的返回数据(示例代码)
2013/11/21 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
2014/10/17 Javascript
js全选实现和判断是否有复选框选中的方法
2015/02/17 Javascript
js实现圆盘记速表
2015/08/03 Javascript
使用vue.js制作分页组件
2016/06/27 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
layui监听工具栏的实例(操作列表按钮)
2019/09/10 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
[04:56]经典回顾:前Ehome 与 前LGD
2015/02/26 DOTA
对python读写文件去重、RE、set的使用详解
2018/12/11 Python
Python求一批字符串的最长公共前缀算法示例
2019/03/02 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
Python 如何提高元组的可读性
2019/08/26 Python
Python实现word2Vec model过程解析
2019/12/16 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
html5响应式开发自动计算fontSize的方法
2020/01/13 HTML / CSS
比利时香水网上商店:NOTINO
2018/03/28 全球购物
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
护士在校生自荐信
2014/02/01 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
Memcached介绍及php-memcache扩展安装
2021/04/01 PHP
gateway网关接口请求的校验方式
2021/07/15 Java/Android
JavaScript实现音乐播放器
2022/08/14 Javascript