shell批量增刪改查百庫百表(mysql)

我的博客已遷移到xdoujiang.com請去那邊和我交流
一、基礎環境
1、版本
cat /etc/debian_version 
7.8

2、內核
uname -r
3.2.0-4-amd64

3、ip(eth0)
10.1.10.117
10.1.10.185

4、2臺機器上都設置權限
grant all privileges on `xxx%`.* to 'jimmy'@'10.1.10.%' identified by 'redhat';
flush privileges;

5、要注意數據庫必須監聽在相應本機IP地址上

二、shell腳本函數說明
redirectlog           #記錄日誌
createdb              #創建庫
createtb              #創建表 

三、具體代碼
cat createdbtb.sh 
#!/bin/bash
#--------------------------------------------------
#Author:jimmygong
#Email:[email protected]
#FileName:createdbtb.sh
#Function:
#Version:1.0
#Created:2015-10-29
#--------------------------------------------------
currdate=$(date +%Y%m%d)
dbuser="jimmy"
dbpass="redhat"
logdir="/root/log"
tmptb="table.sql"
tmpdb="db.sql"
function redirectlog ()
{
    logfile=$logdir/${currdate}log
    mkdir -p $logdir
    exec 1>$logfile
    exec 2>$logfile
}
function createdbsql ()
{
    cat <<EOF > $tmpdb
    create database $1
EOF
}
function createdb ()
{
    dbfront=0
    dbend=100
    while [[ $dbfront -lt $dbend ]]
    do
        dbx=`printf "%02d" $dbfront`
        createdbsql xxx$dbx
        cat $tmpdb|mysql -u"$dbuser" -p"$dbpass" -h"$1"
        let "dbfront+=1"
    done
}
function createtbsql ()
{
    cat <<EOF > $tmptb
    CREATE TABLE IF NOT EXISTS t_xxx_$1(
    userid INT UNSIGNED NOT NULL DEFAULT '0',
    toolid INT UNSIGNED NOT NULL DEFAULT '0',
    number INT UNSIGNED NOT NULL DEFAULT '0',
    get_time INT UNSIGNED NOT NULL DEFAULT '0',
    PRIMARY KEY (userid, toolid)
    ) ENGINE=innodb, CHARSET=utf8;
EOF
}
function createtb () 
{
    dbfront=0
    dbend=100
    tablefront=0
    tableend=100
    while [[ $dbfront -lt $dbend ]]
    do
        dbx=`printf "%02d" $dbfront`
        echo $dbx
        while [[ $tablefront -lt $tableend ]]
        do
            tbx=`printf "%02d" $tablefront`
            createtbsql $tbx
            cat $tmptb|mysql -u"$dbuser" -p"$dbpass" -h"$1" "xxx$dbx"
            let "tablefront+=1"
        done
        let "dbfront+=1"
        let "tablefront=0"
    done
}
redirectlog
createdb 10.1.10.185
createtb 10.1.10.185
createdb 10.1.10.117
createtb 10.1.10.117
end=`date "+%s"` 
exit 0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章