PGSQL做数据库每日备,(其中PGSQL中有多个数据库:zabbix,postgres),并且删除五天以前的备份文件(具体的代码)
时间: 2024-10-01 19:05:28 浏览: 32
在PostgreSQL中,你可以使用`pg_dump`命令来创建数据库备份,并结合`find`命令来删除旧的备份文件。由于涉及到多个数据库,你需要为每个数据库分别运行脚本。以下是一个简单的bash脚本示例,它将在每天自动备份并删除五天前的备份:
```bash
#!/bin/bash
# 定义当前日期
current_date=$(date +%Y-%m-%d)
# 遍历zabbix和postgres数据库
for db in zabbix postgres; do
# 创建备份
backup_path="/path/to/your/backups/${db}_${current_date}.dump" # 根据实际情况替换路径
pg_dump -U your_username -h your_host ${db} > $backup_path
# 删除五天前的备份(保留当天的)
find /path/to/your/backups -type f -name "${db}_*_[0-9]{8}.dump" -mtime +5 -delete
done
# 检查日志并记录操作结果
echo "Backup and cleanup for ${db}s completed on ${current_date}"
```
注意:
1. 将`/path/to/your/backups`替换为实际的备份存储目录。
2. `your_username`和`your_host`应替换为你PostgreSQL服务器的实际用户名和主机名。
3. 这个脚本假设所有的数据库备份都是以`YYYY-MM-DD`的形式命名。
阅读全文