mysql性能监控报警并集成邮件功能

#!/bin/bash
##monitoring the mysql performance status ##
##created by xianyezhao ##
##script in /home/mysql/scripts/status/mysqlstatus.sh  ##
##change the UltraEdit row limit 4096 to 10000  /senior/configuration/normal/
##mkdir -p ${WORKPATH}/log
##mkdir -p ${WORKPATH}/result
##mkdir -p ${WORKPATH}/result/processlist
##mkdir -p ${WORKPATH}/result/innodbstatus
##mkdir -p ${WORKPATH}/alert
##mkdir -p ${WORKPATH}/maillog






##set environment
. ~/.bash_profile
WORKPATH="/home/mysql/scripts/status"
MYSQL="/home/mysql_app/product/bin/mysql"
USER="root"
PASSWORD="******"
HOST="localhost"
PORT="3306"
SHOW_HOST="*.*.*.*"


DATE=`date '+%Y%m%d'`
LASTDATE=`date -d "1 day ago" '+%Y%m%d'`
DATETIME=`date '+%Y%m%d_%H%M%S'`
HOURMINUTE=`date '+%H%M'`
GRID_HOURMINUTE="0101"
SENDMAIL_HOURMINUTE="1001"
ALERT_THREADS_CONNECTED=6000
ALERT_THREADS_RUNNING=16
MAX_CONNECTIONS=10000
ALERT_THREADS_CONNECTED_PERSENT=80
ALERT_INNODB_BUFFER_POOL_READ_PERSENT=100


MAIL_LIST="xianyezhao@richinfo.cn"
MAIL_BIN="/home/crond/bsmtp"
MAIL_IP="*.*.*.*"
##end set environment


#sent mail last day perfomance alert
my_sentmail()
{
   echo " " | ${MAIL_BIN} -f `hostname`@139.com -h smtp.api.localdomain -s "${MAIL_IP}:Mysql Perfomance Alert "  ${MAIL_LIST}  < ${WORKPATH}/maillog/"maillog"${DATE}.log
}


##start generate the full processlist and engine innodb status
PROC_PATH=${WORKPATH}/result/processlist/$DATE
ENGINE_PATH=${WORKPATH}/result/innodbstatus/$DATE
if [ ! -d "$PROC_PATH" ]; then
mkdir -p  "$PROC_PATH"
fi
if [ ! -d "$ENGINE_PATH" ]; then
mkdir -p  "$ENGINE_PATH"
fi
PROCESSLIST_FILE=$PROC_PATH/processlist_${SHOW_HOST}_${DATETIME}.log
ENGINESTATUS_FILE=$ENGINE_PATH/innodbstatus_${SHOW_HOST}_${DATETIME}.log


${MYSQL} -u${USER}  -p${PASSWORD} -h${HOST} -P${PORT} -Bse  "show full processlist\G" >> $PROCESSLIST_FILE
${MYSQL} -u${USER}  -p${PASSWORD} -h${HOST} -P${PORT} -Bse  "show engine innodb status\G" >> $ENGINESTATUS_FILE
##end generate the full processlist and engine innodb status


##start generate status values
cd ${WORKPATH}/log
STATUS_LOG1=`ls -arlt |grep mysqlstatus_|tail -1 |awk '{print $9}'`
echo ${STATUS_LOG1}
${MYSQL} -u${USER}  -p${PASSWORD} -h${HOST} -P${PORT} -Bse "show global status;" >${WORKPATH}/log/mysqlstatus_${DATETIME}.log
STATUS_LOG2=`ls -arlt |grep mysqlstatus_|tail -1 |awk '{print $9}'`
echo ${STATUS_LOG2}


#set the 4 array for the status values
a=1
while read LINE
do
        array1[$a]=`echo $LINE | awk '{print $1}'`
        array2[$a]=`echo $LINE | awk '{print $2}'`
        a=$a+1
done < ${STATUS_LOG1}




b=1
while read LINE
do
        array3[$b]=`echo $LINE | awk '{print $1}'`
        array4[$b]=`echo $LINE | awk '{print $2}'`
        b=$b+1
done < ${STATUS_LOG2}






#start 
UPTIME=`expr ${array4[288]} - ${array2[288]}`


#Threads_connected
THREADS_CONNECTED=${array4[285]}


#Threads_running
THREADS_RUNNING=${array4[287]}


#Queries
QUERIES=`expr ${array4[260]} - ${array2[260]}`
QPS=`expr ${QUERIES} / ${UPTIME}`


#Com_insert
COM_INSERT=`expr ${array4[62]} - ${array2[62]}`
#Com_update
COM_UPDATE=`expr ${array4[140]} - ${array2[140]}`
#Com_delete
COM_DELETE=`expr ${array4[40]} - ${array2[40]}`


COM_TPS_SUM=`expr ${COM_INSERT} + ${COM_UPDATE} + ${COM_DELETE}`
COM_TPS=`expr ${COM_TPS_SUM} / ${UPTIME}`


#Innodb_rows_inserted
INNODB_ROWS_INSERTED=`expr ${array4[216]} - ${array2[216]}`
#Innodb_rows_updated
INNODB_ROWS_UPDATED=`expr ${array4[218]} - ${array2[218]}`
#Innodb_rows_deleted
INNODB_ROWS_DELETED=`expr ${array4[215]} - ${array2[215]}`


INNODB_TPS_SUM=`expr ${INNODB_ROWS_DELETED} + ${INNODB_ROWS_INSERTED} + ${INNODB_ROWS_UPDATED}`
INNODB_TPS=`expr ${INNODB_TPS_SUM} / ${UPTIME}`


#Innodb Buffer Pool hit rate start#
INNODB_BUFFER_POOL_READ_AHEAD=${array4[182]}
INNODB_BUFFER_POOL_READ_REQUESTS=${array4[184]}
INNODB_BUFFER_POOL_READS=${array2[185]}


INNODB_BUFFER_POOL_READ_SUM=`expr ${INNODB_BUFFER_POOL_READ_REQUESTS} + ${INNODB_BUFFER_POOL_READ_AHEAD} + ${INNODB_BUFFER_POOL_READS} `
if [ "${INNODB_BUFFER_POOL_READ_SUM}" -ne 0 ] ; then
  INNODB_BUFFER_POOL_READ_PERSENT=`awk 'BEGIN{printf "%.6f%\n",'${INNODB_BUFFER_POOL_READ_REQUESTS}'/'${INNODB_BUFFER_POOL_READ_SUM}'*100}'`
else 
  INNODB_BUFFER_POOL_READ_PERSENT="0"
fi
#Innodb Buffer Pool hit rate end#


#Innodb_row_lock_time_avg
INNODB_ROW_LOCK_TIME_AVG=${array4[212]}




#Innodb_row_lock_waits
INNODB_ROW_LOCK_WAITS=`expr ${array4[214]} - ${array2[214]}`


#Innodb_os_log_fsyncs
INNODB_OS_LOG_FSYNCS=`expr ${array4[202]} - ${array2[202]}`


#Open_tables
OPEN_TABLES=${array4[233]}


#Open_files
OPEN_FILES=${array4[230]}


#Created_tmp_disk_tables
CREATED_TMP_DISK_TABLES=`expr ${array4[150]} - ${array2[150]}`


#Created_tmp_tables
CREATED_TMP_TABLES=`expr ${array4[152]} - ${array2[152]}`


##end generate status values


##start step format output
cd ${WORKPATH}
#important status values , the title every day run one time
if [ "${HOURMINUTE}" = "${GRID_HOURMINUTE}" ] ; then
   ./printf_grid.sh 1 >>${WORKPATH}/result/mysqlstatus.log
   ./printf_grid.sh 3 >>${WORKPATH}/result/mysqlstatus.log
   ./printf_grid.sh 1 >>${WORKPATH}/result/mysqlstatus.log
fi
printf "|%15s|%6s|%11s|%9s|%6s|%7s|%5s|%11s|%14s|%7s|%15s|%11s|%10s|%23s|%12s|\n" "${DATETIME}" "${UPTIME}" "${THREADS_CONNECTED}" "${THREADS_RUNNING}" "${QPS}" "${COM_TPS}" "${INNODB_TPS}" "${INNODB_BUFFER_POOL_READ_PERSENT}" "${INNODB_ROW_LOCK_TIME_AVG}" "${INNODB_ROW_LOCK_WAITS}" "${INNODB_OS_LOG_FSYNCS}" "${OPEN_TABLES}" "${OPEN_FILES}" "${CREATED_TMP_DISK_TABLES}" "${CREATED_TMP_TABLES}">>${WORKPATH}/result/mysqlstatus.log


#all status values , the title every day run one time
if [ "${HOURMINUTE}" = "${GRID_HOURMINUTE}" ] ; then
  ./printf_grid.sh 2 >>${WORKPATH}/result/all_mysqlstatus.log
  ./printf_grid.sh 4 >>${WORKPATH}/result/all_mysqlstatus.log
  ./printf_grid.sh 2 >>${WORKPATH}/result/all_mysqlstatus.log
fi
printf "|%17s|%18s|%23s|%18s|%28s|%23s|%16s|%15s|%13s|%20s|%14s|%22s|%17s|%20s|%21s|%18s|%17s|%22s|%13s|%24s|%11s|%12s|%20s|%15s|%19s|%11s|%14s|%12s|%15s|%18s|%21s|%18s|%22s|%19s|%18s|%20s|%16s|%17s|%17s|%17s|%12s|%18s|% 8s|%13s|%16s|%19s|%16s|%20s|%17s|%16s|%18s|%15s|%15s|%17s|%17s|%11s|%11s|%14s|%13s|%13s|%10s|%12s|%19s|%20s|%10s|%10s|%17s|%14s|%18s|%17s|%11s|%23s|%23s|%18s|%17s|%12s|%13s|%20s|%11s|%14s|%12s|%16s|%14s|%27s|%15s|%12s|%16s|%18s|%18s|%24s|%19s|%21s|%23s|%20s|%23s|%22s|%22s|%23s|%25s|%20s|%22s|%23s|%24s|%17s|%17s|%17s|%26s|%17s|%15s|%24s|%22s|%18s|%21s|%27s|%22s|%18s|%19s|%26s|%22s|%23s|%17s|%26s|%17s|%23s|%19s|%20s|%19s|%12s|%17s|%16s|%16s|%18s|%16s|%18s|%20s|%16s|%25s|%14s|%22s|%19s|%12s|%18s|%15s|%12s|%16s|%16s|%17s|%14s|%13s|%25s|%19s|%20s|%16s|%24s|%16s|%16s|%16s|%16s|%18s|%17s|%20s|%18s|%19s|%19s|%19s|%18s|%23s|%18s|%19s|%28s|%16s|%15s|%31s|%32s|%31s|%32s|%34s|%31s|%31s|%32s|%26s|%31s|%39s|%35s|%34s|%30s|%35s|%20s|%28s|%27s|%28s|%18s|%19s|%20s|%21s|%28s|%21s|%29s|%18s|%19s|%27s|%22s|%30s|%30s|%23s|%22s|%19s|%22s|%18s|%21s|%22s|%18s|%21s|%31s|%22s|%26s|%26s|%23s|%32s|%24s|%19s|%17s|%11s|%19s|%12s|%20s|%17s|%22s|%26s|%14s|%15s|%26s|%12s|%14s|%13s|%24s|%38s|%40s|%38s|%38s|%40s|%32s|%39s|%41s|%40s|%42s|%39s|%41s|%40s|%42s|%21s|%20s|%20s|%13s|%16s|%22s|%19s|%25s|%21s|%13s|%13s|%13s|%18s|%24s|%14s|%20s|%13s|%24s|%24s|%27s|%28s|%15s|%21s|%14s|%19s|%12s|%12s|%11s|%23s|%20s|%23s|%18s|%19s|%16s|%19s|%17s|%17s|%10s|%27s|\n" "${array4[1]}" "${array4[2]}" "${array4[3]}" "${array4[4]}" "${array4[5]}" "${array4[6]}" "${array4[7]}" "${array4[8]}" "${array4[9]}" "${array4[10]}" "${array4[11]}" "${array4[12]}" "${array4[13]}" "${array4[14]}" "${array4[15]}" "${array4[16]}" "${array4[17]}" "${array4[18]}" "${array4[19]}" "${array4[20]}" "${array4[21]}" "${array4[22]}" "${array4[23]}" "${array4[24]}" "${array4[25]}" "${array4[26]}" "${array4[27]}" "${array4[28]}" "${array4[29]}" "${array4[30]}" "${array4[31]}" "${array4[32]}" "${array4[33]}" "${array4[34]}" "${array4[35]}" "${array4[36]}" "${array4[37]}" "${array4[38]}" "${array4[39]}" "${array4[40]}" "${array4[41]}" "${array4[42]}" "${array4[43]}" "${array4[44]}" "${array4[45]}" "${array4[46]}" "${array4[47]}" "${array4[48]}" "${array4[49]}" "${array4[50]}" "${array4[51]}" "${array4[52]}" "${array4[53]}" "${array4[54]}" "${array4[55]}" "${array4[56]}" "${array4[57]}" "${array4[58]}" "${array4[59]}" "${array4[60]}" "${array4[61]}" "${array4[62]}" "${array4[63]}" "${array4[64]}" "${array4[65]}" "${array4[66]}" "${array4[67]}" "${array4[68]}" "${array4[69]}" "${array4[70]}" "${array4[71]}" "${array4[72]}" "${array4[73]}" "${array4[74]}" "${array4[75]}" "${array4[76]}" "${array4[77]}" "${array4[78]}" "${array4[79]}" "${array4[80]}" "${array4[81]}" "${array4[82]}" "${array4[83]}" "${array4[84]}" "${array4[85]}" "${array4[86]}" "${array4[87]}" "${array4[88]}" "${array4[89]}" "${array4[90]}" "${array4[91]}" "${array4[92]}" "${array4[93]}" "${array4[94]}" "${array4[95]}" "${array4[96]}" "${array4[97]}" "${array4[98]}" "${array4[99]}" "${array4[100]}" "${array4[101]}" "${array4[102]}" "${array4[103]}" "${array4[104]}" "${array4[105]}" "${array4[106]}" "${array4[107]}" "${array4[108]}" "${array4[109]}" "${array4[110]}" "${array4[111]}" "${array4[112]}" "${array4[113]}" "${array4[114]}" "${array4[115]}" "${array4[116]}" "${array4[117]}" "${array4[118]}" "${array4[119]}" "${array4[120]}" "${array4[121]}" "${array4[122]}" "${array4[123]}" "${array4[124]}" "${array4[125]}" "${array4[126]}" "${array4[127]}" "${array4[128]}" "${array4[129]}" "${array4[130]}" "${array4[131]}" "${array4[132]}" "${array4[133]}" "${array4[134]}" "${array4[135]}" "${array4[136]}" "${array4[137]}" "${array4[138]}" "${array4[139]}" "${array4[140]}" "${array4[141]}" "${array4[142]}" "${array4[143]}" "${array4[144]}" "${array4[145]}" "${array4[146]}" "${array4[147]}" "${array4[148]}" "${array4[149]}" "${array4[150]}" "${array4[151]}" "${array4[152]}" "${array4[153]}" "${array4[154]}" "${array4[155]}" "${array4[156]}" "${array4[157]}" "${array4[158]}" "${array4[159]}" "${array4[160]}" "${array4[161]}" "${array4[162]}" "${array4[163]}" "${array4[164]}" "${array4[165]}" "${array4[166]}" "${array4[167]}" "${array4[168]}" "${array4[169]}" "${array4[170]}" "${array4[171]}" "${array4[172]}" "${array4[173]}" "${array4[174]}" "${array4[175]}" "${array4[176]}" "${array4[177]}" "${array4[178]}" "${array4[179]}" "${array4[180]}" "${array4[181]}" "${array4[182]}" "${array4[183]}" "${array4[184]}" "${array4[185]}" "${array4[186]}" "${array4[187]}" "${array4[188]}" "${array4[189]}" "${array4[190]}" "${array4[191]}" "${array4[192]}" "${array4[193]}" "${array4[194]}" "${array4[195]}" "${array4[196]}" "${array4[197]}" "${array4[198]}" "${array4[199]}" "${array4[200]}" "${array4[201]}" "${array4[202]}" "${array4[203]}" "${array4[204]}" "${array4[205]}" "${array4[206]}" "${array4[207]}" "${array4[208]}" "${array4[209]}" "${array4[210]}" "${array4[211]}" "${array4[212]}" "${array4[213]}" "${array4[214]}" "${array4[215]}" "${array4[216]}" "${array4[217]}" "${array4[218]}" "${array4[219]}" "${array4[220]}" "${array4[221]}" "${array4[222]}" "${array4[223]}" "${array4[224]}" "${array4[225]}" "${array4[226]}" "${array4[227]}" "${array4[228]}" "${array4[229]}" "${array4[230]}" "${array4[231]}" "${array4[232]}" "${array4[233]}" "${array4[234]}" "${array4[235]}" "${array4[236]}" "${array4[237]}" "${array4[238]}" "${array4[239]}" "${array4[240]}" "${array4[241]}" "${array4[242]}" "${array4[243]}" "${array4[244]}" "${array4[245]}" "${array4[246]}" "${array4[247]}" "${array4[248]}" "${array4[249]}" "${array4[250]}" "${array4[251]}" "${array4[252]}" "${array4[253]}" "${array4[254]}" "${array4[255]}" "${array4[256]}" "${array4[257]}" "${array4[258]}" "${array4[259]}" "${array4[260]}" "${array4[261]}" "${array4[262]}" "${array4[263]}" "${array4[264]}" "${array4[265]}" "${array4[266]}" "${array4[267]}" "${array4[268]}" "${array4[269]}" "${array4[270]}" "${array4[271]}" "${array4[272]}" "${array4[273]}" "${array4[274]}" "${array4[275]}" "${array4[276]}" "${array4[277]}" "${array4[278]}" "${array4[279]}" "${array4[280]}" "${array4[281]}" "${array4[282]}" "${array4[283]}" "${array4[284]}" "${array4[285]}" "${array4[286]}" "${array4[287]}" "${array4[288]}" "${array4[289]}" >>${WORKPATH}/result/all_mysqlstatus.log
##end step format output


##start alert and log
#Threads_connected
if [ "${THREADS_CONNECTED}" -gt "${ALERT_THREADS_CONNECTED}" ] ; then
   echo ${DATETIME} " Threads_connected is " ${THREADS_CONNECTED} >> ${WORKPATH}/alert/mysql_perfomance_alert${DATE}.log
fi


#Threads_connected persent
THREADS_CONNECTED_PERSENT=`awk 'BEGIN{printf "%.0f\n",'${THREADS_CONNECTED}'/'${MAX_CONNECTIONS}'*100}'`
if [ "${THREADS_CONNECTED_PERSENT}" -gt "${ALERT_THREADS_CONNECTED_PERSENT}" ] ; then
   echo ${DATETIME} " Threads_connected is " ${THREADS_CONNECTED_PERSENT} >> ${WORKPATH}/alert/mysql_perfomance_alert${DATE}.log
fi
echo ${THREADS_CONNECTED_PERSENT}


echo ${INNODB_BUFFER_POOL_READ_PERSENT}
INNODB_BUFFER_POOL_READ_PERSENT_2=`echo ${INNODB_BUFFER_POOL_READ_PERSENT} |cut -d . -f -1`
if [ "${INNODB_BUFFER_POOL_READ_PERSENT_2}" -lt ${ALERT_INNODB_BUFFER_POOL_READ_PERSENT} ] ; then
   echo ${DATETIME} " Innodb_buffer_pool_read_persent is " ${INNODB_BUFFER_POOL_READ_PERSENT_2} "lowwer than " ${ALERT_INNODB_BUFFER_POOL_READ_PERSENT} >> ${WORKPATH}/alert/mysql_perfomance_alert${DATE}.log
fi
echo ${INNODB_BUFFER_POOL_READ_PERSENT_2}


##end alert and log




##get the max status values for last day and alert status values , then send mail , every day run one time
if [ "${HOURMINUTE}" = "${SENDMAIL_HOURMINUTE}" ] ; then
  #get last day alert log
  cat ${WORKPATH}/alert/mysql_perfomance_alert${LASTDATE}.log>>${WORKPATH}/maillog/"maillog"${DATE}.log
  #get today alert log
  cat ${WORKPATH}/alert/mysql_perfomance_alert${DATE}.log>>${WORKPATH}/maillog/"maillog"${DATE}.log
  #get last day max status values
  echo ${DATE}>>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max T_connected is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $3}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max T_running is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $4}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Qps is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $5}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Com_tps is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $6}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Innodb_tps is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $7}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the min Innodb_Buffer_Pool_Read_Persent is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $8}'|cut -d'|' -f1|sort -rn|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Innodb_Row_Lock_Time_Avg is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $9}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Innodb_Row_Lock_Waits is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $10}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Innodb_Os_Log_Fsyncs is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $11}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Open_tables is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $12}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Open_files is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $13}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Created_tmp_disk_tables is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $14}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  echo "the max Created_tmp_tables is :">>${WORKPATH}/maillog/"maillog"${DATE}.log
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}|awk  '{print $15}'|cut -d'|' -f1|sort -n|tail -1 >>${WORKPATH}/maillog/"maillog"${DATE}.log
  #get last day the all status values 
  tail -2880 ${WORKPATH}/result/mysqlstatus.log|grep ${LASTDATE}>>${WORKPATH}/maillog/"maillog"${DATE}.log
  my_sentmail
fi

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29114615/viewspace-1407503/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29114615/viewspace-1407503/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值