Linux实现MySQL数据库凌晨自动备份

备份多数据库,每天凌晨两点执行,使用当前年月日作为文件夹,不存在该文件夹就创建,删除七天前备份过的文件。

定时调度使用crontab

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1 login_user="root"
2
3 login_passwd=""
4
5 vDate=`date +%Y%m%d`
6
7 backup_dir="/home/data/backups/"$vDate"/"
8
9 echo $backup_dir
10
11 if [ ! -d $backup_dir ];then
12 mkdir -p $backup_dir
13 fi
14
15 # 将需要备份的数据放入
16 db_array=("dbName1" "dbName1" "dbName1") #配置要备份的数据库
17
18
19 for db_name in ${db_array[*]}
20 do
21
22 mysqldump -u root -p$login_passwd $db_name > $backup_dir$db_name.sql
23
24 done
25
26 # 删除7天前备份的文件
27 find backup_dir -atime +7 -name "*.sql" -exec rm -rf {} \
28
29 echo "备份结束"

没有安装crontab的小伙伴需要安装crontab,安装过程网上很多在此就不做赘述了。

查看crontab的定时任务

1
2
[root@localhost data]# crontab -l
00 02 * * * /home/data/backup.sh

编辑crontab定时任务

1
[root@localhost data]# crontab -e

image-20220217090020681

我的脚本文件在 /home/data/backup.sh中。

前面三个数字分别代表,见下图。我的是凌晨二点,小伙伴可以根据需要更改。

image-20220217090249886

安利时刻:

image-20220714114938715


Linux实现MySQL数据库凌晨自动备份
http://www.sky1998.cn/2022/03/17/Linux/MySQL数据库自动备份/
作者
程序员田同学
发布于
2022年3月17日
许可协议