首页 > 编程 > Python > 正文

python3监控CentOS磁盘空间脚本

2020-02-15 21:56:22
字体:
来源:转载
供稿:网友

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表