最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell使用mysqld_multi自動(dòng)做多實(shí)例從庫(kù)腳本

 更新時(shí)間:2014年03月13日 14:39:45   作者:  
這篇文章主要介紹了shell使用mysqld_multi自動(dòng)做多實(shí)例從庫(kù)腳本,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

# cat doallslave.sh
#!/bin/sh
#code by scpman
#mail:scpman@live.com
#blog:http://www.scpman.com
#name:"doallslave.sh"
helpinfo()
{
echo -e '\t\thelp 查看幫助信息'
echo -e '\t\t自動(dòng)做allslave從庫(kù)腳本使用幫助'
echo -e '\t\tslavename 只能是xxx_xxx這種命令例如:zq2013_test1'
echo -e '\t\t添加一個(gè)新從庫(kù) 三個(gè)參數(shù)addslave    slavename ip         mysql.tar-name rootpasswd'
echo -e '\t\t例子:         addslave  slavename 10.0.88.88  mysql.xxx.tar passwd  '
echo -e '\t\t刪除一個(gè)從庫(kù)  三個(gè)參數(shù) delslave    slavename '
echo -e '\t\t例子:         delslave slavename'
}
#如果用戶沒(méi)有輸入?yún)?shù)(或者輸入錯(cuò)誤的參數(shù)),或者輸入的參數(shù)為help,則顯示幫助信息,并退出。
if [ -z "$1"  -o "$1" = "help" ]
then
helpinfo
exit
fi
mulu_create()
{
    if [ -d $1 ]
    then
        echo "$1 is have";
    else
        mkdir -p $1;
        echo "create $1 ok!"
    fi
}
check_mycnf()
{
    temp1=`tail -n 1 /etc/my.cnf |grep "server_id"`;
    if [ -z "$temp1" ]
    then
        sed -i ""  '$d' /etc/my.cnf
        check_mycnf

    else   
        echo "/etc/my.cnf符合規(guī)范";
    fi
}
fuc_addslave()
{
if [ -n "$1" -a -n "$2" -a -n "$3" -a -n "$4" ]
then
    slavename=$1
    masterip=$2
    bao_path=$3
    passwd=$4
else
    echo "1 2 3 4 is null!shell exit now"
    helpinfo
    exit
fi
#檢查my.cnf是否正確
check_mycnf
echo "開(kāi)始創(chuàng)建數(shù)據(jù)包存放目錄!"
sleep 1
mulu_create "/usr/doslave/${slavename}/"
mulu_create "/usr/db_backups/${slavename}_mysql_backup/"
mulu_create "/usr/mysql_backup/${slavename}_mysql_backup/"
mulu_create "/usr/mysql_backup_temp/${slavename}_mysql_backup/"
tar -zxvf $bao_path -C /usr/doslave/${slavename}/;
rm -rf /usr/db_backups/${slavename}_mysql_backup/*;
mv /usr/doslave/${slavename}/usr/dlm_db/mysql/*  /usr/db_backups/${slavename}_mysql_backup/;
chown -R mysql:mysql /usr/db_backups/${slavename}_mysql_backup/;
echo "數(shù)據(jù)放置完成!開(kāi)始生成配置文件"
mulu_create "/usr/doslave/confbak"
cp /etc/my.cnf /usr/doslave/confbak/my.cnf_`date +%Y%m%d%H%M%S`;
cp /usr/mysql_backup/dblist /usr/doslave/confbak/dblist_`date +%Y%m%d%H%M%S`;
#######################my.cnf#############
tempconf="/usr/doslave/${slavename}/mycnf.temp"
tail -n 6 /etc/my.cnf > $tempconf;
sleep 2
old_mysqld="`cat $tempconf |grep "mysqld" | sed -e "s/\[mysqld//;s/\]//;"`"
old_port="`cat $tempconf | grep 'port'|awk '{print $3}'`"
old_db_name="`cat $tempconf | grep "pid-file" | awk -F'/' '{print $4 }'|awk -F'_'  '{print $1 "_" $2}'`"
old_server_id="`cat $tempconf | grep "server_id"|awk '{print $3}'`"
new_mysqld="`expr ${old_mysqld} + 1`"
new_port="`expr ${old_port} + 1`"
new_db_name="$slavename"
new_server_id=`echo $masterip |awk -F. '{print $3$4"9"}'`
old_mysqld="`echo $old_mysqld`"
old_port="`echo $old_port`"
old_db_name="`echo $old_db_name`"
old_server_id="`echo $old_server_id`"
sed -i "" "s/$old_mysqld/$new_mysqld/g;s/$old_port/$new_port/g;s/$old_db_name/$new_db_name/g;s/$old_server_id/$new_server_id/g;"$tempconf;
#cat $tempconf
#echo '--->'
sleep 2
echo "" >> /etc/my.cnf;
cat $tempconf >> /etc/my.cnf
echo "mysqld${new_mysqld}" >> /usr/mysql_backup/dblist;
###############################################
echo "my.cnf 和dblist已經(jīng)修改完成!"
/usr/local/bin/mysqld_multi start $new_mysqld
sleep 1
BIN=`cat /usr/db_backups/${slavename}_mysql_backup/pos_mysql|awk '{print $1}'`;
POS=`cat /usr/db_backups/${slavename}_mysql_backup/pos_mysql|awk '{print $2}'`;
#echo $passwd
echo $BIN
echo $POS
echo /usr/local/bin/mysql -uroot -p$passwd --socket=/tmp/mysql_${new_db_name}.sock
sleep 2
/usr/local/bin/mysql -uroot -p$passwd --socket=/tmp/mysql_${new_db_name}.sock <<FFF
stop slave;
reset slave;
CHANGE MASTER TO MASTER_HOST="$masterip", MASTER_USER='slaveuser',MASTER_PASSWORD='slave123213', MASTER_LOG_FILE="$BIN",MASTER_LOG_POS=$POS;
start slave;
FFF
rm -rf /usr/doslave/${slavename}/;
clear
/usr/local/bin/mysql -uroot -p$passwd --socket=/tmp/mysql_${new_db_name}.sock -e "show slave status\G"
echo "服務(wù)器: ${masterip} 的從庫(kù)完成!請(qǐng)刷新并查看php從庫(kù)監(jiān)控"
}
fuc_delslave()
{
if [ -n "$1" ]
then
    nousedbname=$1
else
    echo "slavename is null!shell exit now"
    helpinfo
    exit
fi
if [ -d /usr/db_backups/${nousedbname}_mysql_backup ]
then
    echo "/usr/db_backups/${nousedbname}_mysql_backup 存在!"
else
    echo "/usr/db_backups/${nousedbname}_mysql_backup這個(gè)目錄不存在,請(qǐng)確認(rèn)您的輸入是否正確,腳本退出!"
    exit;
fi
del_id="`grep -B1 "$nousedbname" /etc/my.cnf|grep mysqld|sed -e "s/\[//;s/\]//";`"
stop_id="`echo $del_id|sed -e "s/mysqld//;"`"
echo $del_id
echo $stop_id
/usr/local/bin/mysqld_multi stop $stop_id
rm -rf /usr/db_backups/${nousedbname}_mysql_backup;
sed -i '' "/$del_id/d" /usr/mysql_backup/dblist
sed -i '' "/$del_id/d" /etc/my.cnf
sed -i '' "/$nousedbname/d" /etc/my.cnf
echo "已經(jīng)刪除,請(qǐng)刷新從庫(kù)監(jiān)控"
}
if [ "$1" = "addslave" ]
then
echo '添加新從庫(kù)'
sleep 3
fuc_addslave $2 $3 $4 $5
elif [ "$1" = "delslave" ]
then
echo '刪除'
fuc_delslave $2
else
echo $1 此參數(shù)是非法的
helpinfo
exit
fi

相關(guān)文章

  • Shell?iptales防火墻設(shè)置的方法步驟

    Shell?iptales防火墻設(shè)置的方法步驟

    本文主要介紹了Shell?iptales防火墻設(shè)置的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • Shell腳本傳遞參數(shù)的3種方法比較

    Shell腳本傳遞參數(shù)的3種方法比較

    這篇文章主要介紹了Shell腳本傳遞參數(shù)的3種方法比較,本文直接給出代碼示例,在代碼中包含詳細(xì)注解,需要的朋友可以參考下
    2015-05-05
  • Linux下查看.so和可執(zhí)行文件是否debug編譯的方法(必看)

    Linux下查看.so和可執(zhí)行文件是否debug編譯的方法(必看)

    下面小編就為大家?guī)?lái)一篇Linux下查看.so和可執(zhí)行文件是否debug編譯的方法(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • 如何查看Linux提供的Shell解析器

    如何查看Linux提供的Shell解析器

    這篇文章主要介紹了查看Linux提供的Shell解析器的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • shell寫(xiě)的告警次數(shù)控制及恢復(fù)示例代碼

    shell寫(xiě)的告警次數(shù)控制及恢復(fù)示例代碼

    自己寫(xiě)的一個(gè)監(jiān)控腳本,發(fā)現(xiàn)告警短信次數(shù)未控制時(shí),垃圾短信N多。經(jīng)過(guò)思考,做了個(gè)簡(jiǎn)單的控制,同一故障只發(fā)送二次。之后不再發(fā)送?;謴?fù)后發(fā)送恢復(fù)短信
    2013-02-02
  • linux shell實(shí)現(xiàn)求一個(gè)多維數(shù)組中的最大和最小值

    linux shell實(shí)現(xiàn)求一個(gè)多維數(shù)組中的最大和最小值

    這篇文章主要介紹了linux shell實(shí)現(xiàn)求一個(gè)多維數(shù)組中的最大和最小值,需要的朋友可以參考下
    2016-08-08
  • 利用shell獲取指定日期前N天的日期

    利用shell獲取指定日期前N天的日期

    最近因?yàn)轫?xiàng)目的需要對(duì)比2015年10月的數(shù)據(jù),因?yàn)橐荒陙?lái)的數(shù)據(jù)經(jīng)過(guò)了很多次調(diào)整和處理,遇到的最直接的問(wèn)題是很多數(shù)據(jù)需要重新計(jì)算。只好寫(xiě)腳本刷數(shù)據(jù)。在準(zhǔn)備腳本的過(guò)程中,就需要根據(jù)給定的日期處理數(shù)據(jù),所以就有了這篇文章,下面有需要的朋友們一起學(xué)習(xí)學(xué)習(xí)。
    2016-11-11
  • shell如何記錄用戶的IP與命令詳解

    shell如何記錄用戶的IP與命令詳解

    這篇文章主要給大家介紹了關(guān)于shell是如何記錄用戶的IP與命令的相關(guān)資料,記錄用戶輸入過(guò)的命令使用history命令,而記錄用戶的IP可能稍復(fù)雜一些,需要的朋友們下面跟著小編一起來(lái)看看吧。
    2017-06-06
  • Linux 使用grep篩選多個(gè)條件及grep常用過(guò)濾命令

    Linux 使用grep篩選多個(gè)條件及grep常用過(guò)濾命令

    這篇文章主要介紹了Linux 使用grep篩選多個(gè)條件及grep常用過(guò)濾命令,需要的朋友可以參考下
    2018-07-07
  • expect實(shí)現(xiàn)批量修改linux密碼腳本分享

    expect實(shí)現(xiàn)批量修改linux密碼腳本分享

    這篇文章主要介紹了expect實(shí)現(xiàn)批量修改Linux密碼腳本分享,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-12-12

最新評(píng)論

宁波市| 深水埗区| 遵义县| 林州市| 中方县| 周至县| 黑龙江省| 长泰县| 汉源县| 焉耆| 五台县| 三门县| 西丰县| 哈巴河县| 准格尔旗| 长子县| 页游| 城口县| 新泰市| 肃宁县| 乐至县| 平罗县| 肥城市| 共和县| 连城县| 兴和县| 周至县| 土默特左旗| 米泉市| 漳州市| 十堰市| 长乐市| 攀枝花市| 河源市| 东乡族自治县| 河间市| 来宾市| 山阴县| 景东| 达日县| 襄汾县|