摘要:有時候,監控一個系統需要在系統出現警告時通過發送郵件來通知相關的負責人。一種是普通郵件,通過附件描述詳細報告一種是高級郵件哈哈,本來就是告警,還不趕快看,還要慢慢下載附件打開看所以將附件內容以直接展示到正文處,并通過樣式標記警告。
有時候,監控一個系統需要在系統出現警告時通過shell發送郵件來通知相關的負責人。本文講講如何shell發送郵件。
一種是普通郵件,通過附件描述詳細報告;一種是高級郵件(哈哈),本來就是告警,還不趕快看,還要慢慢下載附件打開看?所以將附件內容以HTML直接展示到正文處,并通過樣式標記警告。
1.安裝sendEmail工具
下載、解壓、配置環境變量
]# wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz ]# tar -zxf sendEmail-v1.56.tar.gz -C SendEmail/ #配置環境變量這里不一樣,不在profile文件里配置,而是拷貝到系統環境變量已有的路徑中 ]# cd ~/myApp/SendEmail/ ]# cp sendEmail /usr/local/bin/
2.開啟郵箱的SMTP
本文使用QQ郵件作為發送者
設置 -> 賬戶 -> 下圖中開啟
3.發送郵件
QQ郵箱對SMTP有如下說明:
#!/bin/bash RECIVER="Wish0123@163.com" SENDER="964478654@qq.com" SENDER_USERNAME=964478654 #密碼填寫SMTP第三方客戶端授權碼 SENDER_PASSWD=*********** ATTACHMENT_PATH=/root/workspace/sh/attach_test.txt #如下圖描述,作為郵件發送方應填這個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
發送后報錯了:
******************************************************************* 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,而應該使用更低版本。或者不用SSL,也就需要在腳本最后一行的sendEmail命令添加一個參數-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
發送成功了!
我擦,居然被當成詐騙釣魚郵件。。
4.HTML版
郵箱直接展示html需要兩個條件:
一是把要展示的數據使用html標簽封裝起來,就可以隨意增加樣式了;
二是在sendEmail增加參數-o message-content-type=html
這里是根據系統內存情況發送系統郵件,當集群中機器的使用內存超過總內存80%的機器信息標紅。
[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第三方客戶端授權碼 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 "
發送成功!
好玩吧~
參考文章:
https://blog.csdn.net/leshami...
https://my.oschina.net/u/4005...
https://blog.csdn.net/wz94732...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/54883.html
摘要:有時候,監控一個系統需要在系統出現警告時通過發送郵件來通知相關的負責人。一種是普通郵件,通過附件描述詳細報告一種是高級郵件哈哈,本來就是告警,還不趕快看,還要慢慢下載附件打開看所以將附件內容以直接展示到正文處,并通過樣式標記警告。 有時候,監控一個系統需要在系統出現警告時通過shell發送郵件來通知相關的負責人。本文講講如何shell發送郵件。一種是普通郵件,通過附件描述詳細報告;一種...
摘要:函數攜帶目的地址主題郵件體模板和一組關鍵字參數。許多擴展操作是在假設有活動的應用程序和請求上下文的情況下進行的。但是當函數在一個不同的線程上執行,應用程序上下文需要人為地創建使用。例如,執行函數可以將郵件發送到的任務隊列中。 許多類型的應用程序都會在某些事件發生的時候通知用戶,常用的溝通方法就是電子郵件。盡管在Flask應用程序中,可以使用Python標準庫中的smtplib包來發送電...
閱讀 1710·2021-11-11 10:58
閱讀 4183·2021-09-09 09:33
閱讀 1256·2021-08-18 10:23
閱讀 1547·2019-08-30 15:52
閱讀 1623·2019-08-30 11:06
閱讀 1866·2019-08-29 14:03
閱讀 1506·2019-08-26 14:06
閱讀 2942·2019-08-26 10:39