基于Python腳本實現(xiàn)郵件報警功能
更新時間:2020年05月20日 08:37:12 作者:Mr_Wmn
這篇文章主要介紹了基于Python腳本實現(xiàn)郵件報警功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
使用了smtplib等第三方庫,進行發(fā)送郵件,完成郵件報警功能
如下是實例 :
#!/usr/bin/python
import glob
import operator
from optparse import OptionParser
import smtplib
import email.MIMEText as MIMEText
import email.Utils.formadate as formatdate
msg = ""
#主方法
def main():
global options
global msg
parser = OptionParser(add_help_option=False)
parser.add_option("-m", "--mail", dest="mail", type="str", help="email address to send report result (comma separated)")
parser.add_option("-t", "--title", dest="title", type="str", help="email title (default:Error File Count)")
parser.add_option("-a", "--admin", dest="admin", type="str", help="set sender address. works with -m option")
(options, args) = parser.parse_args()
#這里監(jiān)控文件夾下的文件數(shù),超出25個文件即報警
datanum = cntFiles("/data/","csv")
if (operator.gt(datanum,25)):
msg += " Please be alert : \n the number of files under /data/ path is greater than 25 :"
msg += "\n =========================================="
msg += "\n The number of files is : " + str(datanum)
sendmsg(options,msg)
print("==== end ====")
#添加發(fā)送郵件的信息
def sendmsg(options,msg):
if options.mail:
toAddr = options.mail
if options.admin:
fromAddr = options.admin
else:
fromAddr = 'zhangsan@neiyou.cn'#這里是公司的公用SMTP郵箱賬號
if options.title:
subject = options.title
else:
subject = 'File Stacking Alarm'
msg += "\n ========================================== \n"
print( msg)
msg = createMsg(fromAddr, toAddr, subject, msg)
print( msg)
send(fromAddr, toAddr, msg)
else:
print( msg)
#glob方法,統(tǒng)計文件夾下的文件數(shù)
def cntFiles(in_directory, ext):
stage = len(glob.glob1(in_directory,"*." + ext))
return stage
#創(chuàng)建郵件頭
def createMsg(fromAddr, toAddr, subject, body):
msg = MIMEText(body)
msg['Subject'] = subject
msg['To'] = toAddr
msg['From'] = fromAddr
msg['Date'] = formatdate()
return msg
#發(fā)送郵件
def send(fromAddr, toAddr, msg):
try:
#這里添加公司的SMTP郵箱地址
s = smtplib.SMTP('192.168.12.120')
s.sendmail(fromAddr, toAddr.split(','), msg.as_string())
s.close()
print("SUCCESS: sending email")
except smtplib.SMTPException:
print("ERROR: sending email")
if __name__ == '__main__':
main()
linux上做計劃任務(wù),把指令添加進計劃任務(wù)中:
Errymsfileemail.py -m zhangsan@gongsi.cn -t "[ERROR/$HOST] File Stacking Alarm"
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Pycharm中Python環(huán)境配置常見問題解析
這篇文章主要介紹了Pycharm中Python環(huán)境配置常見問題,結(jié)合圖文形式分析了Pycharm中Python環(huán)境配置模塊路徑問題、虛擬環(huán)境創(chuàng)建、配置遠(yuǎn)程服務(wù)器、連接數(shù)據(jù)庫等常見問題與操作方法,需要的朋友可以參考下2020-01-01
深入淺析NumPy庫中的numpy.diag()函數(shù)
通過本文的介紹,我們深入了解了NumPy庫中numpy.diag()函數(shù)的用法和應(yīng)用,從基本用法到高級特性,再到在線性代數(shù)中的應(yīng)用,我們逐步展示了numpy.diag()在處理對角矩陣和相關(guān)問題時的強大功能,需要的朋友可以參考下2024-05-05
簡單介紹一下pyinstaller打包以及安全性的實現(xiàn)
這篇文章主要介紹了簡單介紹一下pyinstaller打包以及安全性的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06

