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写个小监控
Jan 27 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
理论讲解python多进程并发编程
Feb 09 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
Apr 24 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
python实现AES加密和解密
Mar 27 Python
python字典的遍历3种方法详解
Aug 10 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
Python中remove漏删和索引越界问题的解决
Mar 18 Python
python3判断IP地址的方法
Mar 04 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 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下Apache PHP5.3.1安装教程
2010/01/08 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
php中的四舍五入函数代码(floor函数、ceil函数、round与intval)
2014/07/14 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
php中fsockopen用法实例
2015/01/05 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
JavaScript 脚本将当地时间转换成其它时区
2009/03/19 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
Vuex的初探与实战小结
2018/11/26 Javascript
微信小程序全局变量GLOBALDATA的定义和调用过程解析
2019/09/23 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
2020/05/09 Javascript
js实现磁性吸附的示例
2020/10/26 Javascript
[00:30]明星选手化身超级英雄!2018DOTA2亚洲邀请赛全明星赛来临!
2018/04/06 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
Python 中Pickle库的使用详解
2018/02/24 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python操作cfg配置文件方式
2019/12/22 Python
Python学习之os模块及用法
2020/06/03 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
澳大利亚鞋仓库:Shoe Warehouse
2019/07/25 全球购物
打造完美自荐信
2014/01/24 职场文书
幼儿园保教管理制度
2014/02/03 职场文书
公司联欢会策划方案
2014/05/19 职场文书
扬尘污染防治方案
2014/06/15 职场文书
岗位职责说明书模板
2014/07/30 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
敬老院志愿者活动总结
2015/05/06 职场文书
汶川大地震感悟
2015/08/10 职场文书
正则表达式拆分url实例代码
2022/02/24 Java/Android
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript