日期:2014-05-16  浏览次数:20746 次

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'