代碼如下:
# 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自動做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#############
新聞熱點
疑難解答