python3监控CentOS磁盘空间脚本


Posted in Python onJune 21, 2018

Python脚本监控CentOS磁盘空间,任何一个分区空间使用大于80%即发邮件给到指定邮箱。

monitor.py

#-*- coding: utf-8 -*- 
import socket 
import subprocess 
import smtplib 
from email.mime.text import MIMEText 
 
sender="xxx.xx@xxx.com" 
receiver= ["xxx.xx@xxx.com"] 
smtpHost="10.134.xxx.xxx" 
smtpPort="587" 
 
def get_ip(): 
  hostname = socket.getfqdn(socket.gethostname()) 
  ip = socket.gethostbyname(hostname) 
  return ip 
 
def send_mail(receiver,subject,content): 
  ip = get_ip() 
  msg = MIMEText(content,_subtype='plain',_charset='utf-8') 
  msg['Subject'] = subject 
  msg['From'] = 'CLOUD SERVER ' + ip 
  msg['To'] = ",".join(receiver) 
 
  try: 
    smtp = smtplib.SMTP(smtpHost,smtpPort) 
    #smtp.set_debuglevel(1) 
    smtp.docmd("HELO Server") 
    smtp.ehlo("ismetoad") 
    smtp.starttls() 
    smtp.helo("ismetoad") 
    smtp.sendmail(sender,receiver,msg.as_string()) 
    smtp.close() 
 
  except Exception as error: 
    print(error) 
 
def run_cmd(cmd): 
  process = subprocess.Popen(cmd,shell=True, stdout=subprocess.PIPE,stderr=subprocess.PIPE)   
  result_f,error_f = process.stdout,process.stderr 
  errors = error_f.read() 
  if errors: 
    pass 
  result = result_f.read().decode() 
  if result_f: 
    result_f.close() 
  if error_f: 
    error_f.close() 
  return result 
 
def disk_check(): 
  subject = '' 
  result = run_cmd(cmd) 
  content = '[root@vm-vc02-SR910 ~]# ' + cmd + '\n' + result 
  result = result.split('\n') 
  for line in result: 
    if 'G ' in line or 'M ' in line: 
      line = line.split() 
      for i in line: 
        if '%' in i and int(i.strip('%')) > 80: 
          subject = '[WARNING] SERVER FILESYSTEM USE% OVER ' + i + ', PLEASE CHECK!' 
  if subject: 
    send_mail(receiver,subject,content) 
    print('email sended') 
  else: 
    print('Everything is ok, keep on monitor.') 
               
if __name__ == '__main__': 
  cmd = 'df -h' 
  disk_check()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
实例解析Python设计模式编程之桥接模式的运用
Mar 02 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
python3连接MySQL数据库实例详解
May 24 Python
python实现简单多人聊天室
Dec 11 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
pandas数据处理进阶详解
Oct 11 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 Python
python常用排序算法的实现代码
Nov 08 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
python打包生成so文件的实现
Oct 30 Python
python实现猜单词小游戏
May 22 #Python
python2.x实现人民币转大写人民币
Jun 20 #Python
python实现猜数字小游戏
Mar 24 #Python
python实现人民币大写转换
Jun 20 #Python
python人民币小写转大写辅助工具
Jun 20 #Python
python简易远程控制单线程版
Jun 20 #Python
python通过Windows下远程控制Linux系统
Jun 20 #Python
You might like
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
PHP 各种排序算法实现代码
2009/08/20 PHP
PHP持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
JavaScript DOM学习第六章 表单实例
2010/02/19 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
React路由管理之React Router总结
2018/05/10 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
Python机器学习库scikit-learn安装与基本使用教程
2018/06/25 Python
Python装饰器语法糖
2019/01/02 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
python多线程分块读取文件
2019/08/29 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
GIVENCHY纪梵希官方旗舰店:高定彩妆与贵族护肤品
2018/04/16 全球购物
如何选择使用结构还是类
2014/05/30 面试题
介绍一下EJB的体系结构
2012/08/01 面试题
经济管理专业毕业生推荐信
2013/11/11 职场文书
办公楼租房协议书范本
2014/11/25 职场文书
初中体育教学随笔
2015/08/15 职场文书
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android
JavaScript中isPrototypeOf函数
2021/11/07 Javascript