Mysql 自动定时备份 + 定时删除过期备份 脚本

研究了一下脚本,给数据库定时做全量备份,并定时删除过期(7天前)的备份。
过两天有心情,再加个e-mail命令,可以将备份发送到指定邮箱。

bakdir="/home/sqlbak/"
filename="`date +%y%m%d`.sql"
backname="`date +%y%m%d`.tar.gz"
backusername = "sqlbakuser"

if [ ! -x "${bakdir}" ];then
mkdir ${bakdir}
fi
cd ${bakdir}
mysqldump ${backusername} >  ${filename}
tar zcf ${backname} ${filename}
rm -f ${filename}
lastfilename="`date +%y%m%d --date '7 days ago'`.tar.gz"
rm -f ${lastfilename}

说明:

第一行指定备份的目录,我这里是/home/sqlbak ,你可以修改为你需要的目录

文件名命名规则是 前缀 date + 年月日 + .sql , 最终保存的是名为.tar.gz后缀的压缩文件

注意提前建立名为sqlbakuser的具有备份权限的mysql用户

将该脚本加入到定时启动中,每天定时启动即可。我一般设置为凌晨2~4点

服务器上我没做定时发送邮件的原因,是我做了一个定时任务在本地,每天定时从服务器上scp下来备份文件,如果没有下载成功,重试几次后本地报警,比较方便。

1 Comment

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注