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爬虫抓取暴走漫画上gif图片的实例分享
Apr 20 Python
python使用webdriver爬取微信公众号
Aug 31 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
在python中以相同顺序shuffle两个list的方法
Dec 13 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
Python pip install之SSL异常处理操作
Sep 03 Python
python爬取代理IP并进行有效的IP测试实现
Oct 09 Python
基于OpenCV的网络实时视频流传输的实现
Nov 15 Python
python-图片流传输的思路及示例(url转换二维码)
Dec 21 Python
安装不同版本的tensorflow与models方法实现
Feb 20 Python
python入门学习关于for else的特殊特性讲解
Nov 20 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中遍历stdclass object的实现代码
2011/06/09 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
js特殊字符转义介绍
2013/11/05 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
javascript判断数组内是否重复的方法
2015/04/21 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
Nodejs+Socket.io实现通讯实例代码
2017/02/13 NodeJs
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
node.js文件上传重命名以及移动位置的示例代码
2018/01/19 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
TypeScript类型声明书写详解
2019/08/28 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
微信小程序开发搜索功能实现(前端+后端+数据库)
2020/03/04 Javascript
Fiddler如何抓取手机APP数据包
2016/01/22 Python
Python爬豆瓣电影实例
2018/02/23 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
Python基于聚类算法实现密度聚类(DBSCAN)计算【测试可用】
2018/12/26 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
学年自我鉴定
2014/01/16 职场文书
法律专业学生的自我评价
2014/02/07 职场文书
高中军训感言800字
2014/03/05 职场文书
销售职业生涯规划范文
2014/03/14 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
个性车贴标语
2014/06/24 职场文书
简单租房协议书
2014/10/21 职场文书
运动会班级口号霸气押韵
2015/12/24 职场文书
李白经典诗之一:全文无一“月”字,却句句有月
2019/07/12 职场文书
如何把新闻人物写得立体、鲜活?
2019/08/14 职场文书
Python基于Tkinter开发一个爬取B站直播弹幕的工具
2021/05/06 Python
一文搞懂Java中的注解和反射
2022/06/21 Java/Android