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实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
详解在Python程序中解析并修改XML内容的方法
Nov 16 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
Apr 11 Python
对python程序内存泄漏调试的记录
Jun 11 Python
python中join()方法介绍
Oct 11 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
python生成带有表格的图片实例
Feb 03 Python
如何使用repr调试python程序
Feb 28 Python
基于Python组装jmx并调用JMeter实现压力测试
Nov 03 Python
django学习之ajax post传参的2种格式实例
May 14 Python
python机器学习实现oneR算法(以鸢尾data为例)
Mar 03 Python
python读取并查看npz/npy文件数据以及数据显示方法
Apr 14 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
浅析get与post的一些特殊情况
2014/07/28 PHP
PHP简单的MVC框架实现方法
2015/12/01 PHP
PHP实现抽奖功能实例代码
2020/06/30 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
网页禁用右键实现代码(JavaScript代码)
2009/10/29 Javascript
JavaScript DOM 学习第三章 内容表格
2010/02/19 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
JavaScript代码实现图片循环滚动效果
2020/03/19 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
spark dataframe 将一列展开,把该列所有值都变成新列的方法
2019/01/29 Python
python按键按住不放持续响应的实例代码
2019/07/17 Python
python线程安全及多进程多线程实现方法详解
2019/09/27 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Windows下Anaconda和PyCharm的安装与使用详解
2020/04/23 Python
python如何代码集体右移
2020/07/20 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
业务员薪酬管理制度
2014/01/15 职场文书
大课间活动实施方案
2014/03/06 职场文书
高三毕业寄语
2014/04/10 职场文书
小学生作文评语
2014/04/18 职场文书
个人考核材料
2014/05/15 职场文书
信访工作经验交流材料
2014/05/23 职场文书
给客户的感谢信
2015/01/21 职场文书
2015年导购员工作总结
2015/04/25 职场文书
redis cluster支持pipeline的实现思路
2021/06/23 Redis