由于这几天比较忙,今天才继续发出这一份实例,这个是我们经常会用的备份对数据库,但是我本次给出的是对数据库目录data进行备份,跟直接备份某一个数据库还是存在区别的,这个后续会有一个专门的实例发出来,今天就先看下这个案例吧:
#!/bin/env/bash
# 定义参数存时间
DAY=`date +%Y%m%d`
# 查看对应data文件夹大小
SIZE=`du -sh /usr/local/mysql/data | awk ‘{print $1}’`
# 每天备份前先将时间和文件大小写入信息记录文件
echo “Date: $DAY” >> /tmp/dbinfo.txt
echo “Data Size: $SIZE” >> /tmp/dbinfo.txt
# 进入到数据所在路径
if [ -d “/opt/dbbak” ]; then
# 存在情况直接执行压缩命令
tar zcvPf /opt/dbbak/mysqlbak-${DAY}.tar.gz /usr/local/mysql/data > /dev/null
else
# 不存在的情况下需要先创建
mkdir -p /opt/dbbak
tar zcvPf /opt/dbbak/mysqlbak-${DAY}.tar.gz /usr/local/mysql/data > /dev/null
fi
# 每次完成后清理dbinfo文件
rm -rf /tmp/dbinfo.txt
我们能看到在压缩tar包的时候参数有一个P,这是因为tar只能压缩相对路径,如果要采用绝对路径就必须加参数P且必须在参数f之前,否则会报错,大家可以试试,也可以做成定时任务,使用crontab -e ,这个大家可以百度下看看