代码如下:
# 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#############
新闻热点
疑难解答