MySQL备份Shell脚本的实现
你可以编写一个 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脚本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在linux(Centos)中Mysql的端口修改保姆级教程(最新整理)
本文详细介绍了如何在CentOS中通过配置文件修改MySQL的端口号,并提供了从切换到root用户到重启MySQL的完整步骤,感兴趣的朋友跟随小编一起看看吧2025-11-11
解决MySQL登录报错1130:1130 Host ***.***.***.*** is not allowe
有时候在登录到MySQL服务器时会遇到1130错误,这是因为无法连接到MySQL服务器或其他一些原因,这篇文章主要给大家介绍了关于解决MySQL登录报错1130:1130 Host ***.***.***.*** is not allowed to connect to this MySQL server的相关资料,需要的朋友可以参考下2023-12-12
mysql Event Scheduler: Failed to open table mysql.event
这篇文章主要介绍了mysql Event Scheduler: Failed to open table mysql.event,需要的朋友可以参考下2016-04-04
最新MySql8.27主从复制及SpringBoot项目中的读写分离实战教程
MySQL主从复制是一个异步的复制过程,底层是基于MySQL1数据库自带的二进制日志功能,这篇文章主要介绍了最新MySql8.27主从复制及SpringBoot项目中的读写分离实战教程,需要的朋友可以参考下2022-08-08


最新评论