mysql_backup_scripts

一、公司备份数据库脚本

#!/bin/bash
###
# backup
###
echo "====================================================="
_date=$(date +%Y-%m-%d--%H:%M:%S)
echo "开始备份,时间:$_date"

#读取文件
if [ -f /www/gxycloud/etc/backupurl ]
then
	backupserver=`cat /www/gxycloud/etc/backupurl`
else
	echo "冗余服务节点未设置"
	exit 0
fi
echo "冗余服务节点IP:$backupserver"

ping $backupserver -c 4 | grep "min/avg/max" -c
ret=$?
if [ $ret -eq 0 ]
then 
echo "网络正常"
else 
echo "网络不通,退出备份"
exit 0
fi


if [ ! -d "/www/backup" ]; then
mkdir /www/backup
echo "创建备份目录"
fi

echo "删除过往备份文件"
rm -R /www/backup/*
echo "删除结束"

#backup database
echo "开始导出数据库"
mysqldump -uroot -pgxycloud2016 --all-databases > /www/backup/database.sql
echo "导出数据库成功"


echo "开始打包文件..."
cd /www/web/
echo "打包/www/web/目录文件"
tar -cf /www/backup/web.tar.gz default/*

cd /www/gxycloud
echo "打包/www/gxycloud/etc/目录文件"
tar -cf /www/backup/etc.tar.gz etc/*
echo "打包/www/gxycloud/etc/目录文件结束"

echo "打包/www/gxycloud/init.d/目录文件"
tar -cf /www/backup/init.tar.gz init.d/*
echo "打包/www/gxycloud/init.d/目录文件结束"

cd /www/backup
echo "打包所有备份文件"
tar -cf /www/backup/backup.tar.gz *
echo "打包完毕"

echo "检查远程目录"
ssh root@$backupserver > /dev/null 2>&1 << eeooff
if [ ! -d "/www/recovery" ]; then
mkdir /www/recovery
fi
exit
eeooff

#send to backup server
echo "发送备份文件"
scp /www/backup/backup.tar.gz root@$backupserver:/www/recovery
echo "发送成功"
echo "开始远程还原"
#start to recovery 
ssh root@$backupserver > /dev/null 2>&1 << eeooff
echo ""
cd /www/recovery
tar -xf backup.tar.gz
tar -xf web.tar.gz
tar -xf etc.tar.gz
tar -xf init.tar.gz
cp -R /www/recovery/etc/* /www/gxycloud/etc/
cp -R /www/recovery/init/* /www/gxycloud/init.d/
cp -R /www/recovery/web/* /www/web/
chown -R www:www /www/web/*
chmod 755 /www/gxycloud/etc/*
chmod 755 /www/gxycloud/init.d/*
mysql -uroot -pgxycloud2016 -e"source /www/recovery/database.sql"
exit
eeooff
echo "远程还原结束,备份结束"
echo "====================================================="
exit 0

  

posted @ 2018-03-16 12:20  努力哥  阅读(197)  评论(0)    收藏  举报