此指令碼的主要用途是檢測mysql伺服器上所有的db或者單獨db中的壞表。
檢測完後會在/tmp 目錄下生成日誌檔案。
檢測指定資料庫的效果圖如下:
檢查所有資料庫:
#!/bin/bash#此指令碼的主要用途是檢測mysql伺服器上所有的db或者單獨db中的壞表
#變數說明 pass mysql賬戶口令 name mysql賬號名稱 data_path mysql目錄路徑 directory_list 目錄列表 file_list檔案列表 db_name 資料庫名稱 repair_count單庫中待修復的表總數
#變數說明 repair_count_all所有庫中待修復的表總數 mysql_version mysql版本 _file_name 資料表名稱
echo -e "此指令碼的主要用途是檢測mysql伺服器上所有的db或者單獨db中的壞表\n\n"
pass
=123456
name
=root
read -p "輸入mysql儲存路徑: " choose
data_path
=$choose
unset choose
read -p "請輸入mysql命令路徑: " mysql_version
#標準輸入、標準輸出、標準錯誤輸出的檔案標示符 由 0、1、2標識
read -p "請選擇是檢查伺服器上所有資料庫還是指定的資料庫 1:檢查全部資料庫 2:只檢查指定資料庫: " choose
if [ $choose
== 1 ]; then
cd $data_path
for directory_list in $(ls)
do if [ -d $directory_list ];then
if [ "mysql" != "$" -a "test" != "$" ];then
cd $
echo "當前檢查資料庫為:"$
for file_list in $(ls *.frm)
do _file_name
=$ echo -e "\n" >
>
/tmp/check_table_all.log
$ -h 127.0.0.1 -u$ -p$ -e "check table "$.$ 2>
&1 >
>
/tmp/check_table_all.log
done
cd ..
fi fi
done
cat /tmp/check_table_all.log | grep "table is marked as crashed" >
/tmp/check_table_repair.log
repair_count_all
=` awk 'end' /tmp/check_table_repair.log `
echo -e "所有資料庫用有$張表需要修復!"
more /tmp/check_table_repair.log
else
read -p "請輸入要檢查的資料庫名稱: " db_name
cd $/$
for file_list in $(ls *.frm)
do _file_name
=$ echo -e "\n" >
>
/tmp/check_$.log
$ -h 127.0.0.1 -u$ -p$ -e "check table "$.$_file_name 2>
&1 >
>
/tmp/check_$.log
done
cat /tmp/check_$.log | grep "table is marked as crashed" >
/tmp/check_$_repair.log
repair_count
=`awk 'end' /tmp/check_$_repair.log`
echo -e "$中共有$個表需要修復!\n "
more /tmp/check_$_repair.log
fi
Mysql 指令碼相容性測試 mysql檢測指令碼
1,根據mysql埠3306來判斷服務啟動正不正常 netstat lnt grep 3306 awk f 獲取埠號比較來判斷 bin sh portnum netstat lnt grep 3306 awk f if portnum 3306 then echo db is running els...
linux下mysql冷備份shell指令碼
usr bin env bash 資料庫基礎資訊 db host 127.0.0.1 本機 db name 1 要備份的庫名 db user root 使用者名稱 db pass root 密碼 date date y m d h m s mysql path data mysql bak 備份路徑...
mysql常用備份命令和shell備份指令碼
備份多個資料庫可以使用如下命令 mysqldump uroot p123456 databases test1 test2 test3 home test dump.sql 恢復備份 source dump.sql 在mysql命令列中輸入該命令即可恢復 備份整個資料庫 mysqldump uroo...