1. 程式人生 > 其它 >Linux監控埠傳送郵件

Linux監控埠傳送郵件

1、首先安裝 mailx 工具

yum install mailx

2、編輯配置檔案

vim /etc/mail.rc   #新增如下內容

建立SSL證書

mkdir -p /root/.certs/
echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt
certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt
certutil -L -d /root/.certs

建立完成後,進入.certs裡,進行信任證書

certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt

返回如下提示:

**Notice: Trust flag u is set automatically if the private key is present.**
#對方收到郵件時顯示的發件人
set [email protected]
#指定第三方發郵件的smtp伺服器地址,如:smtp.qq.com
set smtp=smtps://smtp.qq.com:465
#第三方發郵件的使用者名稱
set [email protected]
#使用者名稱對應的密碼,QQ郵箱可以使用授權碼
set smtp-auth-password=xxx
#SMTP的認證方式,預設是login
set smtp-auth=login
set ssl-verify=ignore
#制定的存放QQ郵箱SSL證書的位置
set nss-config-dir=/root/.certs

3、配置完成,測試傳送郵件

echo "測試郵件" | mail -s "測試" [email protected]

4、編寫Shell指令碼

#!/bin/bash
cur_dir=/data/check_shell
ipfile=$cur_dir/ip.txt
logfile=$cur_dir/log.txt
logfile_err=$cur_dir/log_err.txt
date=`date`
echo "****${date}****" >> $logfile
if [ ! -f "$ipfile" ]; then
echo "系統檢查到在當前路徑下不存在要測試的地址清單,請補充ip.txt要測試的地址清單 EXIT"
exit
fi
if [ ! -f "$logfile" ]; then
touch $cur_dir/log.txt
fi
cat $ipfile | while read line
do
#result=echo -e "\n" | telnet $line 2 &gt /dev/null | grep Connected | wc -l
result=`timeout 30 telnet $line < /dev/null 2>/dev/null | grep '\^' | wc -l`
if [[ $result -eq 1 ]]; then
echo " $line network is nomral" >> $logfile
else
echo "****${date}****" >> $logfile_err
echo " $line 埠檢測失敗,請檢查" >> $logfile_err
mail -s "$line 埠不線上" -c [email protected] [email protected] < $logfile_err
fi
done

5、執行定時

$  crontab -e
00 10 * * * /bin/sh /home/app/backup/disk.sh