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脚本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
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 update修改多个字段and的语法问题详析
这篇文章主要给大家介绍了关于mysql update修改多个字段and的语法问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-12-12
MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)
这篇文章主要介绍了MySQL 启动报错:File ./mysql-bin.index not found (Errcode: 13)的解决方法,需要的朋友可以参考下2014-07-07
mysql中mydumper 和 mysqldump 对比使用
MySQL数据库备份工具有其自带的mysqldump,属于mysql官方的一款备份工具。但是第三方备份工具mydumper凭借优越的特点为更多人所使用。下面就通过测试验证它们之间的备份效率。2017-05-05


最新评论