centos定时备份mysql数据库并删除过期的(自己设定)备份
封面图
•
2025-12-13
•
MySQL
231
0
0
0
在 CentOS 系统中,你可以使用 `cron` 定时任务来定期备份 MySQL 数据库,并通过脚本自动删除过期的备份文件。下面是一个完整的实现方案: --- ## ✅ 一、准备工作 ### 1. 安装必要的工具(如果未安装) ```bash sudo yum install -y cronie ``` ### 2. 创建备份目录 ```bash sudo mkdir -p /backup/mysql ``` --- ## ✅ 二、编写 MySQL 备份脚本 创建一个备份脚本,例如 `/backup/mysql_backup.sh`: ```bash #!/bin/bash # 配置信息 BACKUP_DIR="/backup/mysql" DATE=$(date +%Y%m%d_%H%M%S) MYSQL_USER="root" # MySQL 的用户名 MYSQL_PASSWORD="your_password" # MySQL 的密码 DATABASE_NAME="your_database_name" # 要备份的数据库名 MAX_DAYS=7 # 保留备份的最大天数(用于删除过期备份) # 创建备份文件 BACKUP_FILE="$BACKUP_DIR/$DATABASE_NAME-$DATE.sql.gz" # 执行备份 mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $DATABASE_NAME | gzip > $BACKUP_FILE # 删除过期备份 find $BACKUP_DIR -name "$DATABASE_NAME-*.sql.gz" -mtime +$MAX_DAYS -exec rm -f {} \; echo "Backup completed: $BACKUP_FILE" ``` > ⚠️ 注意: > - 替换 `your_password` 和 `your_database_name` 为你的实际信息。 > - 如果你希望备份所有数据库,可以将 `DATABASE_NAME` 改为 `-all-databases`。 --- ## ✅ 三、设置脚本权限 ```bash sudo chmod +x /backup/mysql_backup.sh ``` --- ## ✅ 四、配置定时任务(crontab) 编辑 crontab 文件: ```bash sudo crontab -e ``` 添加以下内容(每天凌晨 2:00 执行备份): ```bash 0 2 * * * /backup/mysql_backup.sh >> /var/log/mysql_backup.log 2>&1 ``` 这会每天凌晨 2:00 运行备份脚本,并将输出记录到 `/var/log/mysql_backup.log`。 --- ## ✅ 五、验证备份 你可以手动运行脚本来测试是否正常: ```bash sudo /backup/mysql_backup.sh ``` 检查 `/backup/mysql` 目录下是否有生成的 `.sql.gz` 文件。 --- ## ✅ 六、可选:备份所有数据库 如果你需要备份所有数据库,修改脚本中的 `mysqldump` 命令如下: ```bash mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --all-databases | gzip > $BACKUP_FILE ``` --- ## ✅ 七、注意事项 - **安全性**:不要在脚本中明文写入密码,建议使用 `.my.cnf` 文件或使用 `--defaults-extra-file` 来隐藏密码。 - **权限问题**:确保 MySQL 用户有权限访问数据库。 - **日志记录**:建议开启日志,方便排查问题。 --- ## ✅ 示例 `.my.cnf` 配置(更安全的方式) 创建 `/root/.my.cnf` 文件: ```ini [client] user = root password = your_password ``` 然后修改脚本中的命令为: ```bash mysqldump --defaults-extra-file=/root/.my.cnf $DATABASE_NAME | gzip > $BACKUP_FILE ``` 这样就不会在脚本中暴露密码。 --- 如需进一步自动化(比如发送邮件通知、上传到远程服务器等),也可以继续扩展这个脚本。 如有需要,我可以提供更复杂的版本。
上一篇:
mysql查询和“01”号同学所学课程完全相同的其他同学的学号
下一篇:
mysql查询两门及其以上不及格课程的同学的学号,姓名及其平均成绩
标题录入,一次不能超过6条
留言
评论