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 可爱的大小写
Sep 06 Python
Python3实现生成随机密码的方法
Aug 23 Python
python引用DLL文件的方法
May 11 Python
Python基于QRCode实现生成二维码的方法【下载,安装,调用等】
Jul 11 Python
Python内置函数 next的具体使用方法
Nov 24 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
python数字图像处理之高级形态学处理
Apr 27 Python
基于python 微信小程序之获取已存在模板消息列表
Aug 05 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
Jun 01 Python
Django+Nginx+uWSGI 定时任务的实现方法
Jan 22 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
PHP图像处理类库MagickWand用法实例分析
2015/05/21 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
php实现网页端验证码功能
2017/07/11 PHP
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
JS 控件事件小结
2012/10/31 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
BootStrap实现邮件列表的分页和模态框添加邮件的功能
2016/10/13 Javascript
canvas实现简易的圆环进度条效果
2017/02/28 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
node.js express框架实现文件上传与下载功能实例详解
2019/10/15 Javascript
js实现盒子拖拽动画效果
2020/08/09 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
Vue中强制组件重新渲染的正确方法
2021/01/03 Vue.js
node中短信api实现验证码登录的示例代码
2021/01/20 Javascript
[06:11]2014DOTA2国际邀请赛 专访团结一心的VG战队
2014/07/21 DOTA
[03:24][TI9纪实] Dota奶爸
2019/08/22 DOTA
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
实例详解python函数的对象、函数嵌套、名称空间和作用域
2019/05/31 Python
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
使用canvas实现黑客帝国数字雨效果
2020/01/02 HTML / CSS
什么是测试驱动开发(TDD)
2012/02/15 面试题
丑小鸭教学反思
2014/02/03 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
会计专业自荐信范文
2015/03/05 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
公司年会开场白
2015/06/01 职场文书
超强台风观后感
2015/06/09 职场文书
2016父亲节感恩话语
2015/12/09 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
深入理解mysql事务隔离级别和存储引擎
2022/04/12 MySQL