python3监控CentOS磁盘空间脚本

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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python3中详解fabfile的编写

    fab命令好似结合我们编写的fabfile.py(其它文件名必须添加-f filename应用)来搭配使用的,部分命令行参数可以通过相应的方法来替代,使之更加灵活,例如"-H 192.168.56.133,192.168.56.134",我们可以通过定义env.hosts来实现,如"env.hosts=['192.168.56.133,192.168.56.134']".fabfile的主体由多个自定义的任务函数组成,不同任务实现不同的操作逻辑. 全局属性设定 en

  • 浅谈Python2、Python3相对路径、绝对路径导入方法

    os.path.dirname() 获取父目录 os.path.basename() #获取文件名或者文件夹名 python2缺省为相对路径导入,python3缺省为绝对路径导入 python2绝对路径导入 from __future__ import absolute_import python2缺省会搜索上一级目录.上上级目录 解决方案: import platform pver=platform.python_version() pversion= int(pver.split('.')[

  • python3实现windows下同名进程监控

    python3实现windows下同名进程监控,供大家参考,具体内容如下 公司老版的SVN服务器的svn服务经常意外关闭,需要写个简单的监控脚本监控一下: 首先多个SVN服务使用不同的端口,使用wmic命令查看所有SVN进程占用的端口以此来判断目标服务是否存活,wimc命令如下: wmic process where caption="svn.exe" get commandline /value 然后用正则取出标准输出中的端口,用来比对: def get_alive_port(pro

  • Python3.4 tkinter,PIL图片转换

    先给大家分享一下全部代码 import os from PIL import Image import tkinter import tkinter.filedialog import tkinter.messagebox class Window(): def __init__(self): self.root = root = tkinter.Tk() self.menu = tkinter.Menu(root) self.submenu = tkinter.Menu(self.menu,

  • python3实现磁盘空间监控

    本文实例为大家分享了python3磁盘空间监控的具体代码,供大家参考,具体内容如下 软硬件环境 python3 apscheduler 前言 在做频繁操作磁盘的python项目时,经常会碰到磁盘空间不足的情况,这个时候,工程应该要有自己的处理模块,当磁盘利用率到达某个点时,发出警告并停止程序的运行.本文就利用Python3中的apscheduler模块来处理这样的问题. 代码实践 import os import sys import signal import logging from aps

  • python3读取csv和xlsx文件的实例

    基于win10系统,python3.6 读取csv 使用csv函数包,安装 pip install csv 使用方法: import csv def fileload(filename = '待读取.csv'): csvfile = open(filename, encoding = 'utf-8') data = csv.reader(csvfile) dataset = [] for line in data: dataset.append(line) csvfile.close() ret

  • 详解python3中tkinter知识点

    #导入tkinter模块,以及导入ttk模块,tkinter是python结合tk的标准接口,ttk是TK8.5之后加入的"主题化工具包" from tkinter import * from tkinter import ttk #定义的计算函数,完成英尺到米的换算 def calculate(*args): try: value = float(feet.get()) meters.set((0.3048 * value * 10000.0 + 0.5)/10000.0) exce

  • Python3实现转换Image图片格式

    前言 首先图片格式转换的方法有很多,但是转二进制字节流的,我搜了一下午终于在 stackoverflow上搜到了 说一下为什么要在线转这个图片格式 额,一名Python3 spider, 需求要爬去文章,并且把里面的图片,上传到本公司的七牛云上面, 意思就是,图片不需要下载到本地,爬取到图片url后,读取图片二进制数据,然后上传到自己公司七牛云上面,并且替换其格式(这一点很坑) 上传图片二进制数据到七牛云上面不难, 照着七牛云API文档基本就能行,有一点很坑,七牛云官方文档Python API

  • Python3用tkinter和PIL实现看图工具

    需求 想做看图工具的,必然要支持jpg.png等常见格式,但tkinter是个纯粹的GUI库,不像GTK.QT那样大而全,所以只支持gif和ppm两种格式,局限很大,必须搭配图像处理库,才能实现基本的看图功能 在python生态系统里,最常用的图像处理库是PIL Python3下库的安装 这两个库在python3下跟python2有一定差异: tkinter首字母变成小写 PIL官方还不支持Python3,但有个fork叫Pillow,可以替代官方并且接口保持不变,需要pip install P

  • Python3导入CSV文件的实例(跟Python2有些许的不同)

    导入CSV文件导入数据的步骤 ①打开xxx.csv文件 ②首先读取文件头 ③然后读取剩余头 ④当发生错误时抛出异常 读取完所有内容后,打印文件头和剩余所有行 代码: import csv filename = 'enrollments.csv' data = [] try: with open(filename)as f: reader = csv.reader(f) header = next(reader) data = [row for row in reader] except: pas

  • python3实现域名查询和whois查询功能

    1. 域名查询 万网提供了域名查询接口,接口采用HTTP协议: 接口URL:http://panda.www.net.cn/cgi-bin/check.cgi 接口参数:area_domain,接口参数值为标准域名,例:doucube.com 调用举例: http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=doucube.com 返回: <?xml version="1.0" encoding="gb2312&qu

随机推荐