python 指令碼監控硬體磁碟狀態併發送報警郵件
阿新 • • 發佈:2020-11-04
$ cat checkdisk.py #!/usr/bin/python # -*- coding: utf-8 -*- import os import socket import smtplib from email.mime.text import MIMEText from email.header import Header mail_host = "smtp.exmail.qq.com" mail_user = "[email protected]" mail_pass = "yNfY65Gra" Hostname = socket.gethostname() print (Hostname) Message = Hostname + '^^__^^' + 'Disk is Failed!!!' +'請儘快修復磁碟' print (Message) sender = '[email protected]' receivers = ['[email protected]','[email protected]'] def CheckDisk(): #三個引數:第一個為文字內容,第二個 plain 設定文字格式,第三個 utf-8 設定編碼 #message = MIMEText('%s Disk is Failed','plain','utf-8') %(Hostname) message = MIMEText(Message,'plain','utf-8') message['From'] = Header("Disk is Failed ", 'utf-8') # 傳送者 message['To'] = Header("運維", 'utf-8') # 接收者 subject = '%s Disk is Failed' %Hostname message['Subject'] = Header(subject,'utf-8') try: smtpobj = smtplib.SMTP() smtpobj.connect(mail_host,25) smtpobj.login(mail_user,mail_pass) smtpobj.sendmail(sender,receivers,message.as_string()) print("郵件傳送成功") except smtplib.SMTPException: print("Error: 無法傳送郵件") file1 = "/tmp/disk.txt" os.system("""/root/check_disk_status_V1/MegaCli64 -PDList -aAll |grep "Firmware state" |grep -E "Unconfigured|Failed" > %s""" % file1) print (os.path.getsize(file1)) if os.path.getsize(file1) != 0: CheckDisk() file2 = "/tmp/disk2.txt" os.system("""/root/check_disk_status_V1/hpacucli ctrl all show config |grep "Failed" > %s""" % file2) print (os.path.getsize(file2)) if os.path.getsize(file2) != 0: CheckDisk()