麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Linux Shell > 正文

shell使用mysqld_multi自動做多實例從庫腳本

2020-07-27 19:18:09
字體:
來源:轉載
供稿:網友

復制代碼 代碼如下:

# cat doallslave.sh
#!/bin/sh
#code by scpman
#mail:[email protected]
#blog:http://www.scpman.com
#name:"doallslave.sh"
helpinfo()
{
echo -e '/t/thelp 查看幫助信息'
echo -e '/t/t自動做allslave從庫腳本使用幫助'
echo -e '/t/tslavename 只能是xxx_xxx這種命令例如:zq2013_test1'
echo -e '/t/t添加一個新從庫 三個參數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刪除一個從庫  三個參數 delslave    slavename '
echo -e '/t/t例子:         delslave slavename'
}
#如果用戶沒有輸入參數(或者輸入錯誤的參數),或者輸入的參數為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符合規范";
    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 "開始創建數據包存放目錄!"
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 "數據放置完成!開始生成配置文件"
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已經修改完成!"
/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 "服務器: ${masterip} 的從庫完成!請刷新并查看php從庫監控"
}
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這個目錄不存在,請確認您的輸入是否正確,腳本退出!"
    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 "已經刪除,請刷新從庫監控"
}
if [ "$1" = "addslave" ]
then
echo '添加新從庫'
sleep 3
fuc_addslave $2 $3 $4 $5
elif [ "$1" = "delslave" ]
then
echo '刪除'
fuc_delslave $2
else
echo $1 此參數是非法的
helpinfo
exit
fi

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩视频一区二区三区四区 | 超碰97在线人人 | 农村寡妇偷毛片一级 | 国产一级做a爰片在线看 | 新久草在线视频 | 午夜激情视频免费 | 亚洲网在线观看 | 欧美性生活区 | 中国a级黄色片 | 久久综合久久美利坚合众国 | 色操网| 久久久日韩av免费观看下载 | 九色国产 | av成人免费观看 | 欧洲a级片 | 欧美成视频在线观看 | av影院在线播放 | 激情久久一区二区 | 99re色| 91香焦视频 | 日韩精品网站在线观看 | 久色亚洲 | 久久免费视频一区 | 黄色毛片视频在线观看 | 成人区一区二区三区 | 337p粉嫩大胆噜噜噜亚瑟影院 | 羞羞视频免费网站 | 亚洲成人免费视频在线 | 精品久久久久久久久久久久包黑料 | 午夜爱爱福利 | 久久电影一区二区 | 视频一区 中文字幕 | 久国久产久精永久网页 | 欧美亚洲国产成人综合在线 | 桥本有菜免费av一区二区三区 | 久久超碰99 | 亚洲国产精品一区二区久久 | 亚洲综合网站 | 国产精品自在线拍 | 国产精品成人一区二区三区电影毛片 | 免费h片网站 |