출처 : http://blog.lovetonight.net/155
#/bin/sh
MYSQL_ID="root"
MYSQL_PWD="okran@naver"
MYSQL_HOST=""
MYSQL_BIN="/usr/local/mysql/bin/mysql"
DBD_NAME="mysqld"
SUCC_CNT="0"
FAIL_CNT="0"
REPAIR_SUCC_CNT="0"
REPAIR_FAIL_CNT="0"
if [ "$MYSQL_PWD" != '' ]
then
if [ `ps -C "$DBD_NAME" -o pid=` != '' ]
then
MYSQL_BIN="$MYSQL_BIN -u $MYSQL_ID -p$MYSQL_PWD"
fi
fi
for INF in $( $MYSQL_BIN -e "show databases"|grep -v "Database" |grep -v "lost+found" | grep -v "information_schema"); do
echo -en "\033[1;37m<<<< DATABASE : $INF CHECK START >>>>\033[0m\r\n";
sleep 1;
for TBNAME in $( $MYSQL_BIN $INF -e "show tables" |grep -v "Tables_in_");
do
echo -en " *TABLE CHK: $TBNAME";
CHKRET=`$MYSQL_BIN $INF -e "check table $TBNAME" |grep "$TBNAME" | sed "s/\t//g"`
REPAIR_RUN=`$MYSQL_BIN $INF -e "repair table $TBNAME" |grep "$TBNAME" |sed "s/\t//g"`
if [ `echo $CHKRET | grep "check status OK" | wc -c` != 0 ]
then
echo -en "\t$INF.$TBNAME\tCHECK STATUS \r\n\t\t\t\t\t\t\t\t[ \033[1;32mOK\033[0m ]\r\n";
SUCC_CNT=`expr $SUCC_CNT + 1`
else
echo -en "\t$INF.$TBNAME\tCHECK STATUS \t\t\t[ \033[1;31mFAILED\033[0m ]\r\n";
echo -en "\t * ERRMSG : \033[1;31m$CHKRET\033[0m\r\n\r\n";
FAIL_CNT=`expr $FAIL_CNT + 1`
sleep 1;
echo -en "\t * \033[1;31m[$TBNAME] Repair Processing is now... \033[1;31m$CHKRET\033[0m\r\n\r\n";
if [ `echo $REPAIR_RUN | grep " repair status OK" | wc -c` != 0 ]
then
echo -en "\033[1;37m\t * $INF.$TBNAME\t REPAIR PROCESS\033[0m\r\n\t\t\t\t\t\t\t\t[ \033[1;32mOK\033[0m ]\r\n";
REPAIR_SUCC_CNT=`expr $REPAIR_SUCC_CNT + 1`
else
echo -en "\t * $INF.$TBNAME\t REPAIR PROCESS \t\t\t [ \033[1;31mFAILED\033[0m ]\r\n\r\n";
echo -en "\t * ERRMSG : \033[1;31m$CHKRET\033[0m\r\n\r\n";
REPAIR_FAIL_CNT=`expr $REPAIR_FAIL_CNT + 1`
sleep 1;
fi
fi
done;
echo -en "\033[1;37m<<<< DATABASE : $INF CHECK END >>>>\033[0m\r\n";
echo "";
echo "";
done
echo "CHECK SUCCESS TABLE: $SUCC_CNT";
echo "CHECK FAILD TABLE: $FAIL_CNT";
echo "REPAIR SUCCESS TABLE: $REPAIR_SUCC_CNT";
echo "REPAIR FAILD TABLE: $REPAIR_FAIL_CNT";
'Linux > shell script' 카테고리의 다른 글
linux 디렉토리경로 / 지울때 sed 이용 (0) | 2018.09.04 |
---|---|
shell 스크립트와 expect 이용하여 스위치장비 전체 패스워드 변경 (1) | 2017.06.08 |
리눅스 백업 스크립트 예제 (1) | 2016.10.14 |