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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。