Last active
January 2, 2016 06:48
-
-
Save shiny/8265553 to your computer and use it in GitHub Desktop.
一键从局域网的 mylvmbackup 备份恢复数据库
适用环境:
开发机:Mac,数据库通过 dmg 镜像安装。
备份:任意*nix、支持ssh 的主机。
否则需要稍作修改。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#一键从备份恢复数据 | |
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