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调用Moxa PCOMM Lite通过串口Ymodem协议实现发送文件
Aug 15 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
Python中使用插入排序算法的简单分析与代码示例
May 04 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
老生常谈Python基础之字符编码
Jun 14 Python
机器学习python实战之决策树
Nov 01 Python
Python科学画图代码分享
Nov 29 Python
pygame游戏之旅 按钮上添加文字的方法
Nov 21 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
Python解析json时提示“string indices must be integers”问题解决方法
Jul 31 Python
python 如何区分return和yield
Sep 22 Python
python工具——Mimesis的简单使用教程
Jan 16 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
正义联盟的终局之战《天启星战争》将成为DC动画宇宙的最后一部
2020/04/09 欧美动漫
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
基于PHP技术开发客服工单系统
2016/01/06 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
PDO::commit讲解
2019/01/27 PHP
Laravel框架实现多个视图共享相同数据的方法详解
2019/07/09 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
2012年开发人员的16款新鲜的jquery插件体验分享
2012/12/28 Javascript
阻止子元素继承父元素事件具体思路及实现
2013/05/02 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
jquery中取消和绑定hover事件的实现代码
2016/06/02 Javascript
判断输入的字符串是否是日期格式的简单方法
2016/07/11 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
详解angularjs跨页面传参遇到的一些问题
2018/11/01 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
nuxt 服务器渲染动态设置 title和seo关键字的操作
2020/11/05 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
使用Python对Access读写操作
2017/03/30 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
python组合无重复三位数的实例
2018/11/13 Python
使用pandas把某一列的字符值转换为数字的实例
2019/01/29 Python
如何基于python生成list的所有的子集
2019/11/11 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
html5弹跳球示例代码
2013/07/23 HTML / CSS
《世界多美呀》教学反思
2014/03/02 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
2014年党委工作总结
2014/11/22 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL