1.需要备份的数据库服务器信息
地址:192.168.2.247
用户名:root
密码:xxxx
2.查看存储备份数据服务器磁盘空间使用情况
df -h
3.选择磁盘空间最大的一个用于备份
/home目录
3.在/home目录创建备份目录
cd /home/
mkdir backup
ls
4.创建bkdb.sh文件
touch bkdb.sh
5.编辑bkdb.sh文件
#!/bin/bash
## 需要备份数据库服务信息
# xxx数据库
FROM_DB_NAME1="xx_test"
FROM_DB_NAME2="xx_test"
FROM_DB_NAME3="xx_test"
FROM_DB_NAME4="xx_test"
FROM_DB_USER="root"
FROM_DB_PASS=xx
## 存储备份数据的服务器信息
TARGET_BACKUP_DIR="/home/backup"
# 判断备份路径是否存在,不存在则创建该路径
if [ ! -d $BACKUP_DIR ];then
mkdir -p "$BACKUP_DIR"
fi
# 进入备份目录
cd "$TARGET_BACKUP_DIR"
# 文件名
DUMPFILE1="$FROM_DB_NAME1-$(date +%Y%m%d_%H%M%S).sql.gz"
DUMPFILE2="$FROM_DB_NAME2-$(date +%Y%m%d_%H%M%S).sql.gz"
DUMPFILE3="$FROM_DB_NAME3-$(date +%Y%m%d_%H%M%S).sql.gz"
DUMPFILE4="$FROM_DB_NAME4-$(date +%Y%m%d_%H%M%S).sql.gz"
# 备份xx数据库
mysqldump -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME1 | gzip > $DUMPFILE1
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME1 backup success"
else
echo "$FROM_DB_NAME1 backup fail!"
fi
# xx数据库
mysqldump -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME4 | gzip > $DUMPFILE4
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME4 backup success"
else
echo "$FROM_DB_NAME4 backup fail!"
fi
# xx数据库
mysqldump -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME2 | gzip > $DUMPFILE2
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME2 backup success"
else
echo "$FROM_DB_NAME2 backup fail!"
fi
# xx数据库
mysqldump -u$FROM_DB_USER -p$FROM_DB_PASS $FROM_DB_NAME3 | gzip > $DUMPFILE3
if [[ $? == 0 ]];then
echo "$FROM_DB_NAME3 backup success"
else
echo "$FROM_DB_NAME3 backup fail!"
fi
# 删除7天前的数据
do_delete()
{
# 查看超过7天的数据
DELFILES=`find $TARGET_BACKUP_DIR -mtime +7 -type f -exec ls {} \;`
# 查看超过2分钟的数据
#DELFILES=`find $TARGET_BACKUP_DIR -mmin +2 -type f -exec ls {} \;`
for delfile in ${DELFILES}
do
rm -rf $delfile
echo "delete success"
done
}
do_delete
6.添加可执行权限
chmod u+x bkdb.sh
7.crontab 定时执行脚本
# 编辑crontab文件
vi /etc/crontab
# 添加如下命令,说明:每天1时0分进行数据库备份操作
00 01 * * * root /home/backup/bkdb.sh
# crontab服务状态控制可以通过如下命令进行查看和操作
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
/sbin/service crond status //查看状态
或
service crond start
service crond stop
service crond restart
service crond reload
service crond status