python

超轻量级php框架startmvc

python3监控CentOS磁盘空间脚本

更新时间:2020-06-07 12:06:01 作者:startmvc
Python脚本监控CentOS磁盘空间,任何一个分区空间使用大于80%即发邮件给到指定邮箱。monitor.p

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

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

python3监控CentOS磁盘空间 python监控CentOS磁盘空间 python3监控磁盘空间