Skip to content

Instantly share code, notes, and snippets.

@shiny
Last active January 2, 2016 06:48
Show Gist options
  • Save shiny/8265553 to your computer and use it in GitHub Desktop.
Save shiny/8265553 to your computer and use it in GitHub Desktop.
一键从局域网的 mylvmbackup 备份恢复数据库 适用环境: 开发机:Mac,数据库通过 dmg 镜像安装。 备份:任意*nix、支持ssh 的主机。 否则需要稍作修改。
#一键从备份恢复数据
HOST=192.168.1.158 #主机地址,最好写好证书
BACKUP_DIR=/data/autobackup/mysql #远程备份文件夹地址
DB=jjdd #数据库名
MYSQL_DATA_DIR=/usr/local/mysql/data/ #本机数据库 datadir
MYSQL_USER=_mysql:_mysql #mysql 的用户
#start...
sudo echo '已获得 root 权限'
if [ $? -ne 0 ] ; then
echo '请正确输入密码'
exit 0
fi
if [ -f $MYSQL_DATA_DIR ]; then
echo 没有找到$MYSQL_DATA_DIR
exit 0
fi
#拷贝
FILE=`ssh $HOST ls $BACKUP_DIR/* -t | head -1`
FILENAME=`ssh $HOST ls $BACKUP_DIR/ -t | head -1`
rsync -av --progress $HOST:$FILE ./$FILENAME
if [ $? -ne 0 ] ; then
echo '传输失败.'
exit 0
fi
echo $FILE
#解压
tar zxf $FILENAME
if [ $? -ne 0 ] ; then
echo '解压失败.'
exit 0
fi
#检查文件是否存在
if [ -f backup/$DB ]; then
echo 没有找到$DB
exit 0
fi
rm -rf 'backup-pos'
sudo /Library/StartupItems/MySQLCOM/MySQLCOM stop
if [ $? -ne 0 ] ; then
echo '关闭 MySQL 失败.'
exit 0
fi
sudo rm -rf $MYSQL_DATA_DIR$DB
sudo cp -a backup/$DB $MYSQL_DATA_DIR
sudo chown -R $MYSQL_USER $MYSQL_DATA_DIR$DB
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start
if [ $? -ne 0 ] ; then
echo '启动 MySQL 失败.'
exit 0
fi
rm -rf 'backup'
rm $FILENAME
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment