0%

Linux定时自动备份数据库

数据库的备份是运维中非常重要的一环,定期备份数据库可以有效的防止数据丢失。特别是线上数据的备份尤为重要,养成定期备份数据库信息能有效的减少不必要的损失和麻烦。

备份脚本准备

首先先准备一个备份脚本mysql_autobackup.sh,将以我这里的目录为例,脚本内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash

# 1、原生mysql方式
/usr/local/mysql/bin/mysqldump -uroot -p123456 --databases database_name > /data/dbbank/back_`date +%F`.sql

# 2、docker的方式

/usr/bin/docker exec -i mysql /bin/bash -c 'mysqldump -uroot -p123456 --databases database_name' > /data/dbbank/back_`date +%F`.sql

# -uroot 数据库用户名
# -p123456 数据库的密码
# database_name 要备份的数据库名
# /data/dbbank/back_`date +%F`.sql 要保存的备份地址,并以日期命名

删除30天以上的备份文件

1
find /data/dbbank/ -mtime +30 -type f | xargs rm -f

可以将这个脚本放置在mysql_autobackup.sh文件内容的后面。

添加可执行权限

1
chmod u+x mysql_autobackup.sh

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用。

添加计划任务

确认crontab是否安装,如果没安装,请自行安装

crontab中的脚本内容如下:

1
0 8 * * * sh /data/mysql_autobackup.sh > mysql_autobackup.log