使用mysql backup工具写一个全备脚本,并只保留最近3天的备份文件
时间: 2024-10-20 07:05:45 浏览: 40
mysql备份脚本
在MySQL中,你可以编写一个bash脚本来自动化定期备份并仅保留最近3天的备份文件。这里提供一个基础示例:
```bash
#!/bin/bash
# 定义MySQL数据库信息
DB_USER="username"
DB_PASS="password"
DB_NAME="your_database_name"
BACKUP_DIR="/path/to/backup/directory"
# 检查备份目录是否存在,不存在则创建
mkdir -p "$BACKUP_DIR" || echo "Backup directory already exists."
# 定义当前日期和时间
DATE=$(date +%Y%m%d%H%M%S)
# 创建备份文件名,例如:20230307103000_dbname_backup.sql
BACKUP_FILE="$BACKUP_DIR/physical_fullback_$DATE.sql"
# 执行 mysqldump 工具进行全备份
mysqldump --user=$DB_USER --password=$DB_PASS --host=localhost $DB_NAME > $BACKUP_FILE
# 删除超过3天的旧备份
find "$BACKUP_DIR" -maxdepth 1 -type f \( -name "physical_fullback_*.sql" ! -newermt "$(date -d '3 days ago' +'%Y%m%d%H%M%S')"\ ) -exec rm -f {} \;
echo "Backup completed. Keeping only the last 3 day's backups."
```
在这个脚本中:
1. 定义了数据库用户、密码和要备份的数据库名称。
2. 使用`mysqldump`命令创建全备份到指定目录。
3. `find`命令搜索并删除超过3天的备份文件,`! -newermt "$(date -d '3 days ago' +'%Y%m%d%H%M%S')"`这部分用于判断文件是否更新在3天内。
记得替换上述脚本中的`username`、`password`、`your_database_name`和`/path/to/backup/directory`为你实际的数据库用户名、密码、数据库名称以及备份文件存储路径。
阅读全文