一、备份
#!/bin/sh
#添加定时任务 每天循环压缩备份数据库,保留最近一周
DB_NAME="数据库名"
DB_USER="数据库账号"
DB_PASS='数据库密码'
#定义备份目录
BACK_PATH="备份目录"
#根据时间生成备份文件名
DATE=`date +%w`
mkdir -p $BACK_PATH
mysqldump --opt -u$DB_USER -p$DB_PASS $DB_NAME|bzip2 -cfsz > $BACK_PATH/$DB_NAME.dump_$DATE.sql.bz2 2>> $BACK_PATH/error.log
二、还原
#!/bin/sh
#
#接收参数1 要还原的数据库名
DB_NAME=$1
DB_USER="定义mysql账号"
DB_PASS="定义mysql密码"
BACK_PATH="定义备份目录"
#接收参数2 要还原的备份文件
FILENAME=$2
FILE="$BACK_PATH/$FILENAME"
echo "数据库 $DB_NAME 还原文件:$FILE"
#判断文件是否存在且可读
if [[ -f $FILE && -r $FILE ]]
then
echo "开始还原..."
bzip2 -cksdf < $FILE | mysql -u$DB_USER -p$DB_PASS $DB_NAME
else
echo "文件 $FILE 读取失败!"
fi