MySQL5.0.9版本获取状态脚本



#!/bin/bash

fun_mysql_operations(){
MYSQL_DATATIME=`date +"%Y-%m-%d %H:%M:%S"`
MYSQL_BASEDIR=$1
MYSQL_HOSTNAME=$2
MYSQL_USERNAME=$3
MYSQL_PASSWORD=$4
MYSQL_PORT=$5
MYSQL_SOCKET=$6
MYSQL_CONNECTION_COMMAND="${MYSQL_BASEDIR} -h${MYSQL_HOSTNAME} -u${MYSQL_USERNAME} -p${MYSQL_PASSWORD} -P${MYSQL_PORT} -S${MYSQL_SOCKET}"

SQL1="CREATE TABLE IF NOT EXISTS mysql.mysql_status_check(mysql_status_name varchar(35),mysql_status_value varchar(25),mysql_getstatus_time datetime);"
$MYSQL_CONNECTION_COMMAND -e "${SQL1}"
$MYSQL_CONNECTION_COMMAND -e "show global status; " >/tmp/mysql5.0_status.txt
$MYSQL_CONNECTION_COMMAND -e "SHOW VARIABLES like \"%datadir%\"; " >/tmp/my.txt
sed -i '1d' /tmp/my.txt |cat /tmp/my.txt |awk '{print $2}'  >>/tmp/my.txt
mysql_datadir=`awk '{print $2}' /tmp/my.txt`
cd $mysql_datadir
mysql_data_size=`du -sh|awk '{print $1}' `

ARR_STATUS_VAR=(Key_reads Key_read_requests Qcache_hits Qcache_inserts Innodb_buffer_pool_reads Innodb_buffer_pool_read_requests
Threads_created Connections Slow_queries Created_tmp_disk_tables Created_tmp_tables Select_full_join Threads_connected
 Connect_timeout Innodb_row_lock_current_waits Threads_cached Threads_running Table_locks_waited Questions Queries  Key_writes Key_write_requests data_length index_length Opened_tables processlist_count processlist_sleep)

$MYSQL_CONNECTION_COMMAND -e "delete from mysql.mysql_status_check_new;"
i=1
for status_var in ${ARR_STATUS_VAR[@]};
do
 mysql_status=`grep ${status_var} /tmp/mysql5.0_status.txt| awk '{print $1}'`
 arrary1[i]=${mysql_status}
 mysql_status_values=`grep ${status_var} /tmp/mysql5.0_status.txt| awk '{print $2}'`
 arrary2[i]=${mysql_status_values}

 if [[ $status_var != ${arrary1[i]} ]]; then
    arrary1[i]=$status_var
    arrary2[i]=0
 fi
 if [[ ${i} = 27 ]]; then
   SQL2="CREATE TABLE IF NOT EXISTS mysql.mysql_status_check_new(${arrary1[1]} varchar(35),${arrary1[2]} varchar(35),${arrary1[3]} varchar(35),${arrary1[4]} varchar(35),${arrary1[5]} varchar(35),${arrary1[6]} varchar(35),${arrary1[7]} varchar(35),${arrary1[8]} varchar(35),${arrary1[9]} varchar(35),${arrary1[10]} varchar(35),${arrary1[11]} varchar(35),${arrary1[12]} varchar(35),${arrary1[13]} varchar(35),${arrary1[14]} varchar(35),${arrary1[15]} varchar(35),${arrary1[16]} varchar(35),${arrary1[17]} varchar(35),${arrary1[18]} varchar(35),${arrary1[19]} varchar(35),${arrary1[20]} varchar(35),${arrary1[21]} varchar(35),${arrary1[22]} varchar(35),${arrary1[23]} varchar(35),${arrary1[24]} varchar(35),${arrary1[25]} varchar(35),${arrary1[26]} varchar(35),${arrary1[27]} varchar(35),getstatus_time datetime);"
   SQL3="insert into mysql.mysql_status_check_new values('${arrary2[1]}','${arrary2[2]}','${arrary2[3]}','${arrary2[4]}','${arrary2[5]}','${arrary2[6]}','${arrary2[7]}','${arrary2[8]}','${arrary2[9]}','${arrary2[10]}','${arrary2[11]}','${arrary2[12]}','${arrary2[13]}','${arrary2[14]}','${arrary2[15]}','${arrary2[16]}','${arrary2[17]}','${arrary2[18]}','${arrary2[19]}','${arrary2[20]}','${arrary2[21]}','${arrary2[22]}','${arrary2[23]}','${arrary2[24]}','${arrary2[25]}','${arrary2[26]}','${arrary2[27]}','${MYSQL_DATATIME}');"
echo "${SQL3}"
   $MYSQL_CONNECTION_COMMAND -e "${SQL2}"
   $MYSQL_CONNECTION_COMMAND -e "${SQL3}"
 fi
#echo "${i}  ${arrary1[i]}  ${arrary2[i]}"
#echo "length:${#ARR_STATUS_VAR[@]}"
let i=i+1
done
sql_4="update mysql.mysql_status_check_new set data_length='${mysql_data_size}'; "
$MYSQL_CONNECTION_COMMAND -e "${sql_4}"
}


mysql_connections_info=/root/get_mysqlstatus_connections_info.txt
while read line
do
MYSQL_BASEDIR=`echo $line| awk '{print $1}'`
MYSQL_HOSTNAME=`echo $line | awk '{print $2}'`
MYSQL_USERNAME=`echo $line | awk '{print $3}'`
MYSQL_PASSWORD=`echo $line | awk '{print $4}'`
MYSQL_PORT=`echo $line | awk '{print $5}'`
MYSQL_SOCKET=`echo $line | awk '{print $6}'`
fun_mysql_operations ${MYSQL_BASEDIR}   ${MYSQL_HOSTNAME} ${MYSQL_USERNAME} ${MYSQL_PASSWORD}  ${MYSQL_PORT} ${MYSQL_SOCKET}
done < ${mysql_connections_info}
exit 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值