MySQL备份Shell脚本的实现

 更新时间:2025年03月25日 09:21:38   作者:SAFE20242034  
本文主要介绍了Shell脚本来自动备份MySQL数据库,脚本会备份指定数据库或所有数据库,按日期命名备份文件以防止覆盖,并自动删除N天前的旧备份以节省空间,具有一定的参考价值,感兴趣的可以了解一下

你可以编写一个 Shell 脚本来自动备份 MySQL 数据库。下面是一个示例脚本,它会:

  • 备份指定数据库(或所有数据库)。
  • 按日期命名备份文件,防止覆盖。
  • 自动删除 N 天前的旧备份,节省空间。

示例:MySQL 备份 Shell 脚本

#!/bin/bash

# 配置部分
BACKUP_DIR="/backup/mysql"  # 备份存放目录
MYSQL_USER="root"           # MySQL 用户名
MYSQL_PASSWORD="yourpassword" # MySQL 密码
MYSQL_HOST="localhost"      # MySQL 服务器地址
DATABASE_NAME="your_database"  # 备份的数据库名,若要备份所有数据库,改为 --all-databases
RETENTION_DAYS=7            # 保留的天数,自动删除旧备份

# 获取当前日期
DATE=$(date +"%Y-%m-%d_%H-%M-%S")

# 备份文件名
BACKUP_FILE="$BACKUP_DIR/${DATABASE_NAME}_$DATE.sql.gz"

# 确保备份目录存在
mkdir -p "$BACKUP_DIR"

# 执行备份
mysqldump -h "$MYSQL_HOST" -u "$MYSQL_USER" -p"$MYSQL_PASSWORD" "$DATABASE_NAME" | gzip > "$BACKUP_FILE"

# 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "MySQL 备份成功: $BACKUP_FILE"
else
    echo "MySQL 备份失败!"
    exit 1
fi

# 删除 N 天前的旧备份
find "$BACKUP_DIR" -type f -name "${DATABASE_NAME}_*.sql.gz" -mtime +$RETENTION_DAYS -exec rm {} \;

echo "已清理 $RETENTION_DAYS 天前的旧备份"

使用方式

复制脚本到 Linux 服务器,如 /backup/mysql_backup.sh

修改脚本参数(数据库名、用户名、密码等)。

赋予执行权限

chmod +x /backup/mysql_backup.sh

手动运行测试

/backup/mysql_backup.sh

设置定时任务,每天凌晨 2 点自动备份:

crontab -e

添加:

0 2 * * * /backup/mysql_backup.sh >> /backup/backup.log 2>&1

这样,你的 MySQL 数据库就能每天自动备份并清理旧备份,确保数据安全!

到此这篇关于MySQL备份Shell脚本的实现的文章就介绍到这了,更多相关MySQL备份Shell脚本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中主键索引与聚焦索引之概念的学习教程

    MySQL中主键索引与聚焦索引之概念的学习教程

    这篇文章主要介绍了MySQL中的主键索引与聚焦索引的概念,文中也对比了两种索引有何不同,需要的朋友可以参考下
    2015-11-11
  • mysql远程跨库联合查询的示例

    mysql远程跨库联合查询的示例

    本文主要介绍了mysql远程跨库联合查询的示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • MySQL数据管理操作示例讲解

    MySQL数据管理操作示例讲解

    MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性
    2022-12-12
  • CentOS 6.5下yum安装 MySQL-5.5全过程图文教程

    CentOS 6.5下yum安装 MySQL-5.5全过程图文教程

    在linux安装mysql是一个困难的事情,yum安装一般是安装的mysql5.1,现在经过自己不懈努力终于能用yum安装mysql5.5了。下面通过两种方法给大家介绍CentOS 6.5下yum安装 MySQL-5.5全过程,一起学习吧
    2016-05-05
  • mysql 查询重复的数据的SQL优化方案

    mysql 查询重复的数据的SQL优化方案

    这篇文章主要介绍了mysql 查询重复的数据的SQL优化方案,非常不错的方案推荐给大家。
    2015-02-02
  • 关于Mysql update修改多个字段and的语法问题详析

    关于Mysql update修改多个字段and的语法问题详析

    这篇文章主要给大家介绍了关于mysql update修改多个字段and的语法问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • mysql表的四种分区方式总结

    mysql表的四种分区方式总结

    通俗地讲表分区是将一大表,根据条件分割成若干个小表,下面这篇文章主要给大家介绍了关于mysql表的四种分区方式,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)

    MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)

    这篇文章主要介绍了MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)的解决方法,需要的朋友可以参考下
    2014-07-07
  • 探讨:innodb与myisam在存储上有何特点和区别

    探讨:innodb与myisam在存储上有何特点和区别

    本篇文章是对innodb与myisam在存储上有何特点和区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • mysql中mydumper 和 mysqldump 对比使用

    mysql中mydumper 和 mysqldump 对比使用

    MySQL数据库备份工具有其自带的mysqldump,属于mysql官方的一款备份工具。但是第三方备份工具mydumper凭借优越的特点为更多人所使用。下面就通过测试验证它们之间的备份效率。
    2017-05-05

最新评论