Mysql备份脚本,适用于单库多库同时备份,并实现在Linux下自动执行,自动删除历史备份保留最新

前言

提供mysqldump备份脚本 适合中小型数据库。数据量过大需要根据实际情况考虑是否适用!

常用备份命令

命令备份速度恢复速度用途
cp用于少量数据备份
mysqldump用于中小规模数据备份
xtrabackup较快较快用于较大规模数据备份

脚本

创建mysql_back.sh脚本

#!/bin/bash

# 定义 MySQL 连接信息
# 用户名
mysql_user="root"
# 密码
mysql_password=""
#数据库host
mysql_host="localhost"

# 定义备份目录
backup_dir="/usr/local/mysql_back"

# 定义要备份的数据库列表
database_list=("datasource1" "datasource2")

# 循环备份每个数据库
for database_name in "${database_list[@]}"
do
  # 定义备份文件名格式(以当前日期命名)
  backup_file="$backup_dir/db_backup_${database_name}_$(date +'%Y%m%d').sql"

  # 备份指定的数据库
  /usr/local/mysql/bin/mysqldump -h $mysql_host -u $mysql_user -p$mysql_password $database_name > $backup_file

  # 删除7天前的备份文件
  find $backup_dir -name "db_backup_${database_name}_*.sql" -type f -mtime +7 -exec rm {} \;
done

配置linux自动执行

crontab -e

*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----------星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------------月份 (1 - 12) 
|    |    +--------------------一个月中的第几天 (1 - 31)
|    +-------------------------小时 (0 - 23)
+------------------------------分钟 (0 - 59)

## 每天0.30执行/usr/local/mysql_back/mysql_back.sh脚本
30 0 * * * /usr/local/mysql_back/mysql_back.sh
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值