python3监控CentOS磁盘空间脚本
Python脚本监控CentOS磁盘空间,任何一个分区空间使用大于80%即发邮件给到指定邮箱。
monitor.py
#-*-coding:utf-8-*- importsocket importsubprocess importsmtplib fromemail.mime.textimportMIMEText sender="xxx.xx@xxx.com" receiver=["xxx.xx@xxx.com"] smtpHost="10.134.xxx.xxx" smtpPort="587" defget_ip(): hostname=socket.getfqdn(socket.gethostname()) ip=socket.gethostbyname(hostname) returnip defsend_mail(receiver,subject,content): ip=get_ip() msg=MIMEText(content,_subtype='plain',_charset='utf-8') msg['Subject']=subject msg['From']='CLOUDSERVER'+ip msg['To']=",".join(receiver) try: smtp=smtplib.SMTP(smtpHost,smtpPort) #smtp.set_debuglevel(1) smtp.docmd("HELOServer") smtp.ehlo("ismetoad") smtp.starttls() smtp.helo("ismetoad") smtp.sendmail(sender,receiver,msg.as_string()) smtp.close() exceptExceptionaserror: print(error) defrun_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() iferrors: pass result=result_f.read().decode() ifresult_f: result_f.close() iferror_f: error_f.close() returnresult defdisk_check(): subject='' result=run_cmd(cmd) content='[root@vm-vc02-SR910~]#'+cmd+'\n'+result result=result.split('\n') forlineinresult: if'G'inlineor'M'inline: line=line.split() foriinline: if'%'iniandint(i.strip('%'))>80: subject='[WARNING]SERVERFILESYSTEMUSE%OVER'+i+',PLEASECHECK!' ifsubject: send_mail(receiver,subject,content) print('emailsended') else: print('Everythingisok,keeponmonitor.') if__name__=='__main__': cmd='df-h' disk_check()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。