linux中将mysql状态信息导出为文件
一、vim exe_show.sh
FILESTAF=`date +%Y-%m-%d_%H:%M:%S`
USERNAME="root"
PWD="password"
declare -a SQLS
SQLS[1]="SHOW INNODB STATUS\G"
SQLS[2]="SHOW FULL PROCESSLIST\G"
#如果需要监控其他的可以再增加SQLS[i]="SHOW FULL PROCESSLIST\G"
start(){
length=${#SQLS[@]}
for((i=1;i<=length;i++))
do
# 去除\G
preFileName=`echo ${SQLS[$i]} | cut -d'\' -f 1`
# 去除空格
preFileName=`echo $preFileName | sed 's/ //g'`
mysql -u$USERNAME -p$PWD -e "${SQLS[$i]}" | tee -a "$preFileName"_"$FILESTAF"
或者
mysql -u$USERNAME -p$PWD -e "${SQLS[$i]}" >> "$preFileName"_"$FILESTAF"
done
}
start
二、运行exe_show.sh
注:tee将数据流送与文件和屏幕。-a:累加方式写入
mysql -uroot -pPassword -e "SHOW INNODB STATUS\G" | tee -a innodblog | more
可以分页查看信息
三、定时查看
使用watch命令,例如:每隔60秒将状态信息输出到log文件中
watch -n 60 'mysql -uroot -pPassword -e "SHOW INNODB STATUS\G" >> log'