Linux監控埠傳送郵件
阿新 • • 發佈:2021-07-02
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 > /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