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日期操作学习笔记
Oct 07 Python
Python对文件操作知识汇总
May 15 Python
python算法表示概念扫盲教程
Apr 13 Python
Python 结巴分词实现关键词抽取分析
Oct 21 Python
Python探索之Metaclass初步了解
Oct 28 Python
python中的闭包函数
Feb 09 Python
Python装饰器原理与用法分析
Apr 30 Python
python使用suds调用webservice接口的方法
Jan 03 Python
Python concurrent.futures模块使用实例
Dec 24 Python
python爬虫请求头设置代码
Jul 28 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
Python编程编写完善的命令行工具
Sep 15 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
Zerg剧情介绍
2020/03/14 星际争霸
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
PHP is_subclass_of函数的一个BUG和解决方法
2014/06/01 PHP
php从字符串创建函数的方法
2015/03/16 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
基于 Swoole 的微信扫码登录功能实现代码
2018/01/15 PHP
PHP封装的数据库模型Model类完整示例【基于PDO】
2019/03/14 PHP
在laravel框架中实现封装公共方法全局调用
2019/10/14 PHP
javascript之对系统的toFixed()方法的修正
2007/05/08 Javascript
封装好的省市地区联动控件附下载
2007/08/13 Javascript
js获取height和width的方法说明
2013/01/06 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
2017/05/20 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
js中this对象用法分析
2018/01/05 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
Python使用reportlab将目录下所有的文本文件打印成pdf的方法
2015/05/20 Python
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
通过实例了解python property属性
2019/11/01 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
基于Python实现2种反转链表方法代码实例
2020/07/06 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
大学生的应聘自我评价
2013/12/13 职场文书
2015年出纳年终工作总结
2015/05/14 职场文书
北京青年观后感
2015/06/15 职场文书
休假证明书
2015/06/24 职场文书
2015年教师节主持词
2015/07/03 职场文书
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python