摘要:有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過發(fā)送郵件來通知相關(guān)的負(fù)責(zé)人。一種是普通郵件,通過附件描述詳細(xì)報告一種是高級郵件哈哈,本來就是告警,還不趕快看,還要慢慢下載附件打開看所以將附件內(nèi)容以直接展示到正文處,并通過樣式標(biāo)記警告。
有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過shell發(fā)送郵件來通知相關(guān)的負(fù)責(zé)人。本文講講如何shell發(fā)送郵件。
一種是普通郵件,通過附件描述詳細(xì)報告;一種是高級郵件(哈哈),本來就是告警,還不趕快看,還要慢慢下載附件打開看?所以將附件內(nèi)容以HTML直接展示到正文處,并通過樣式標(biāo)記警告。
1.安裝sendEmail工具
下載、解壓、配置環(huán)境變量
]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz ]# tar -zxf sendEmail-v1.56.tar.gz -C SendEmail/ #配置環(huán)境變量這里不一樣,不在profile文件里配置,而是拷貝到系統(tǒng)環(huán)境變量已有的路徑中 ]# cd ~/myApp/SendEmail/ ]# cp sendEmail /usr/local/bin/
2.開啟郵箱的SMTP
本文使用QQ郵件作為發(fā)送者
設(shè)置 -> 賬戶 -> 下圖中開啟
3.發(fā)送郵件
QQ郵箱對SMTP有如下說明:
#!/bin/bash RECIVER="Wish0123@163.com" SENDER="964478654@qq.com" SENDER_USERNAME=964478654 #密碼填寫SMTP第三方客戶端授權(quán)碼 SENDER_PASSWD=*********** ATTACHMENT_PATH=/root/workspace/sh/attach_test.txt #如下圖描述,作為郵件發(fā)送方應(yīng)填這個hostname STMP_HOST=smtp.qq.com MESSAGEL_SUBJECT="Have Fun" MESSAGE_BODY="報警啊..." sendEmail -f $SENDER -t $RECIVER -a $ATTACHMENT_PATH -s $STMP_HOST -xu $SENDER_USERNAME -xp $SENDER_PASSWD -u $MESSAGEL_SUBJECT -m $MESSAGE_BODY -o message-charset=utf-8
發(fā)送后報錯了:
******************************************************************* Using the default of SSL_verify_mode of SSL_VERIFY_NONE for client is deprecated! Please set SSL_verify_mode to SSL_VERIFY_PEER possibly with SSL_ca_file|SSL_ca_path for verification. If you really don"t want to verify the certificate and keep the connection open to Man-In-The-Middle attacks please set SSL_verify_mode explicitly to SSL_VERIFY_NONE in your application. ******************************************************************* at /usr/local/bin/sendEmail line 1906. invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 444.
意思是SSL版本不對,原因是在cent7中Perl的版本5.16,而應(yīng)該使用更低版本。或者不用SSL,也就需要在腳本最后一行的sendEmail命令添加一個參數(shù)-o tls=no
sendEmail -f $SENDER -t $RECIVER -a $ATTACHMENT_PATH -s $STMP_HOST -xu $SENDER_USERNAME -xp $SENDER_PASSWD -u $MESSAGEL_SUBJECT -m $MESSAGE_BODY -o message-charset=utf-8 -o tls=no
發(fā)送成功了!
我擦,居然被當(dāng)成詐騙釣魚郵件。。
4.HTML版
郵箱直接展示html需要兩個條件:
一是把要展示的數(shù)據(jù)使用html標(biāo)簽封裝起來,就可以隨意增加樣式了;
二是在sendEmail增加參數(shù)-o message-content-type=html
這里是根據(jù)系統(tǒng)內(nèi)存情況發(fā)送系統(tǒng)郵件,當(dāng)集群中機器的使用內(nèi)存超過總內(nèi)存80%的機器信息標(biāo)紅。
[root@NN1 sh]# cat memory_info ip consum free total 192.168.1.10 100 100 200 192.168.1.11 1 239 240 192.168.1.12 350 50 400 192.168.1.13 40 24 64 192.168.1.14 77 33 110 192.168.1.15 150 250 400
編寫腳本
#!/bin/bash -x RECIVER="Wish0123@163.com" SENDER="964478654@qq.com" SENDER_USERNAME=964478654 #密碼填寫SMTP第三方客戶端授權(quán)碼 SENDER_PASSWD=xuxjxankheuubcjd STMP_HOST=smtp.qq.com MESSAGEL_SUBJECT="Have Fun" HTML_PATH=html_path echo "
ip | consum | free | total | ">>$HTML_PATH echo "">>$HTML_PATH create_tr() { i=2 lines=$(cat memory_info | wc -l) while [ $i -le $lines ] do j=1 ip=$(awk "NR==i {print $j}" i=$i j=$j memory_info) let "j++" m=$(awk "NR==i {print $j}" i=$i j=$j memory_info) let "j++" f=$(awk "NR==i {print $j}" i=$i j=$j memory_info) let "j++" t=$(awk "NR==i {print $j}" i=$i j=$j memory_info) tr="
---|---|---|---|
"$ip" | ">>$HTML_PATH echo ""$m" | ">>$HTML_PATH echo ""$f" | ">>$HTML_PATH echo ""$t" | ">>$HTML_PATH echo "
發(fā)送成功!
好玩吧~
參考文章:
https://blog.csdn.net/leshami...
https://my.oschina.net/u/4005...
https://blog.csdn.net/wz94732...
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/54883.html
摘要:有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過發(fā)送郵件來通知相關(guān)的負(fù)責(zé)人。一種是普通郵件,通過附件描述詳細(xì)報告一種是高級郵件哈哈,本來就是告警,還不趕快看,還要慢慢下載附件打開看所以將附件內(nèi)容以直接展示到正文處,并通過樣式標(biāo)記警告。 有時候,監(jiān)控一個系統(tǒng)需要在系統(tǒng)出現(xiàn)警告時通過shell發(fā)送郵件來通知相關(guān)的負(fù)責(zé)人。本文講講如何shell發(fā)送郵件。一種是普通郵件,通過附件描述詳細(xì)報告;一種...
摘要:函數(shù)攜帶目的地址主題郵件體模板和一組關(guān)鍵字參數(shù)。許多擴展操作是在假設(shè)有活動的應(yīng)用程序和請求上下文的情況下進行的。但是當(dāng)函數(shù)在一個不同的線程上執(zhí)行,應(yīng)用程序上下文需要人為地創(chuàng)建使用。例如,執(zhí)行函數(shù)可以將郵件發(fā)送到的任務(wù)隊列中。 許多類型的應(yīng)用程序都會在某些事件發(fā)生的時候通知用戶,常用的溝通方法就是電子郵件。盡管在Flask應(yīng)用程序中,可以使用Python標(biāo)準(zhǔn)庫中的smtplib包來發(fā)送電...
閱讀 1811·2021-11-11 10:58
閱讀 4361·2021-09-09 09:33
閱讀 1326·2021-08-18 10:23
閱讀 1627·2019-08-30 15:52
閱讀 1718·2019-08-30 11:06
閱讀 1937·2019-08-29 14:03
閱讀 1566·2019-08-26 14:06
閱讀 3050·2019-08-26 10:39