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 07 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
Python 十六进制整数与ASCii编码字符串相互转换方法
Jul 09 Python
PyCharm鼠标右键不显示Run unittest的解决方法
Nov 30 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
python画图系列之个性化显示x轴区段文字的实例
Dec 13 Python
python读取有密码的zip压缩文件实例
Feb 08 Python
Python实现账号密码输错三次即锁定功能简单示例
Mar 29 Python
详解Python中字符串前“b”,“r”,“u”,“f”的作用
Dec 18 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
Jun 18 Python
Python答题卡识别并给出分数的实现代码
Jun 22 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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获取MAC地址的具体实例
2013/12/13 PHP
php中3种方法删除字符串中间的空格
2014/03/10 PHP
php生成图片缩略图的方法
2015/04/07 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
jQuery(1.3.2) 7行代码搞定跟随屏幕滚动的层
2009/05/21 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
js实现日期级联效果
2014/01/23 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
JavaScript获取元素尺寸和大小操作总结
2015/02/27 Javascript
JavaScript设计模式经典之工厂模式
2016/02/24 Javascript
原生JS封装Ajax插件(同域、jsonp跨域)
2016/05/03 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
Angular使用操作事件指令ng-click传多个参数示例
2018/03/27 Javascript
微信小程序学习笔记之获取位置信息操作图文详解
2019/03/29 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
在Linux下调试Python代码的各种方法
2015/04/17 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
python实现淘宝秒杀聚划算抢购自动提醒源码
2020/06/23 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
python中property和setter装饰器用法
2019/12/19 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
2020/04/08 Python
AmazeUI 缩略图的实现示例
2020/08/18 HTML / CSS
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
金融专业大学生自我评价
2014/01/09 职场文书
教师一岗双责责任书
2014/04/16 职场文书
《乡下孩子》教学反思
2014/04/17 职场文书
优秀教导主任事迹材料
2014/05/09 职场文书
乡镇保密工作承诺书
2015/05/04 职场文书
初中同学会致辞
2015/08/01 职场文书
Arthas排查Kubernetes中应用频繁挂掉重启异常
2022/02/28 MySQL
UNION CREATIVE《Re:从零开始的异世界生活》雷姆手办
2022/03/20 日漫