mail工具發送mysql 慢查郵件
#!/bin/bash
slowfile="/home/mysql8.0.16/logs/mysql-slow.log"
tmpslow="/opt/tmp.log"
# create tmp-slow
if [ ! -e ${tmpslow} ];then
touch ${tmpslow}
else
>${tmpslow}
fi
# slow-file copy to tmp-slow
if [ -s ${slowfile} ];then
cat ${slowfile} > ${tmpslow}
fi
# send mail
user="root"
pass="123456"
host="192.168.11.253"
port=3308
info() {
time_first=`/home/mysql8.0.16/mysql/bin/mysql -u$user -p$pass -h$host -P$port=3308 -e "select now();" |awk 'END{print}'`
time_second=`/home/mysql8.0.16/mysql/bin/mysql -u$user -p$pass -h$host -P$port=3308 -e "select ADDTIME(sysdate(),'0:10:0');" |awk 'END{print}'`
StartTime=`grep -E "Time" /home/mysql8.0.16/logs/mysql-slow.log | awk '{print $3}'`
DBname=`/home/mysql8.0.16/mysql/bin/mysql -u$user -p$pass -h$host -P$port=3308 -e "select database();"|awk 'END{print}' `
SQLtext=`awk 'END{print}' /home/mysql8.0.16/logs/mysql-slow.log`
repeat=`awk '/Rows_examined/{print $NF}' /home/mysql8.0.16/logs/mysql-slow.log`
QueryTimes=` awk '/Query_time/{print $3}' /home/mysql8.0.16/logs/mysql-slow.log`
HostAdress=`awk -F "[: ]+" '/User@Host/{print $3,$4,$5}' /home/mysql8.0.16/logs/mysql-slow.log`
LockTime=`awk '/Lock_time/{print $5}' /home/mysql8.0.16/logs/mysql-slow.log`
echo "time_range: " $time_first "-" $time_second
echo -e "\n"
echo "StartTime: " $StartTime
echo "DBname: "$DBname
echo "SQLtext: "$SQLtext
echo "repeat: "$repeat
echo "QueryTimes: "$QueryTimes
echo "HostAdress: "$HostAdress
echo "LockTime: "$LockTime
}
# 調用函數且發送郵件
if [ -s ${tmpslow} ];then
main(){
info > /home/mysql8.0.16/logs/info.log
echo "mysql slow log already sending!" | mail -s "mysql slow log" [email protected] < /home/mysql8.0.16/logs/info.log
}
main
fi
if [ -s ${slowfile} ];then
>${slowfile}
fi
或者
#!/bin/bash
dt=`date +%Y_%m_%d`
/bin/pt-query-digest /home/mysql8.0.16/logs/mysql-slow.log >/opt/slow$dt.log
echo "(xxx平臺host: 68.0.1)上週最新慢日誌,請查收!" | /bin/mail -s "last_week.SLOWlog" -a /opt/slow$dt.log [email protected]
cp -f /home/mysql8.0.16/logs/mysql-slow.log /opt/$dtslow.log >/opt/slow.log
find /data/weekly/slow/ -mtime +15 -name "*slow*.log" -exec rm -rf {} \;
安裝mailx軟件
# yum install mailx -y
vi /etc/nail.rc(在配置文件最後添加)
set [email protected] #(需修改)收件人顯示的發件人名稱,可填寫你的名字等
set smtp=smtp.exmail.xx.com (需修改)你所使用的外部郵箱的smtp服務器地址
set [email protected] (需修改)你所使用的外部郵箱的用戶名
set smtp-auth-password=1980019Ss (需修改)你所使用的外部郵箱密碼
set smtp-auth=login
測試
echo 123 | mailx -v -s "test" [email protected]