思路:
挂载云数据盘用来做数据备份;
编写shell脚本备份数据到数据盘,并删除历史备份文件;
利用crontab建立计划任务,执行上述脚本;
1.挂载云数据盘
#查看数据盘信息,比如数据盘是/dev/vdb
fdisk -l
#对数据盘分区
fdisk /dev/vdb
#按照界面的提示,依次输入“n”(新建分区)、“p”(新建主分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输入“wq”(保存分区表),回车开始分区。
#格式化分区为ext3格式
mkfs.ext3 /dev/xvdb1
#创建备份目录
mkdir /home/backup
#挂载目录
mount /dev/vdb1 /home/backup
2.编写shell脚本备份数据到数据盘,并删除历史备份文件
-
备份数据到数据盘
cd /home/backup
vi bkDatabaseName.sh
#!/bin/bash
nowHour=$(date +%H)
if [ $nowHour -gt 6 ] && [ $nowHour -lt 23 ]
then
mysqldump -uroot -pdatabasePwd bkDatabaseName1 > /home/backup/db_bk/bkDatabaseName1_$(date +%Y%m%d_%H%M%S).sql
sleep 1m
mysqldump -uroot -pdatabasePwd bkDatabaseName2 > /home/backup/db_bk/bkDatabaseName2_$(date +%Y%m%d_%H%M%S).sql
fi
chmod u+x bkDatabaseName.sh
#测试
sh bkDatabaseName.sh
-
删除历史备份文件
vi bk_rm.sh
#!/bin/bash
#7天前日期
delDate=`date +%Y%m%d -d “-7 days”`
#echo $delDate
#查询并删除7天前备份数据
find /home/backup/db_bk -name “*${delDate}*” -exec rm {} \;
3.计划任务
crontab -e
#每天7-23点每小时备份一次数据库
* 7-23/1 * * * /home/backup/db_bk/shell/bkDatabaseName.sh
#每天0点删除历史备份
* 0 */1 * * /home/backup/db_bk/shell/bk_rm.sh