mirror of
https://github.com/Yuyi-Oak/BlueArchiveToolkit.git
synced 2026-07-22 04:06:44 +08:00
38 lines
779 B
Bash
38 lines
779 B
Bash
#!/bin/sh
|
|
# PostgreSQL 自动备份脚本
|
|
|
|
set -e
|
|
|
|
BACKUP_DIR="/backups"
|
|
DATE=$(date +%Y%m%d_%H%M%S)
|
|
BACKUP_FILE="$BACKUP_DIR/backup_$DATE.sql.gz"
|
|
|
|
echo "开始备份 PostgreSQL 数据库:$DATE"
|
|
|
|
# 创建备份目录
|
|
mkdir -p $BACKUP_DIR
|
|
|
|
# 执行备份
|
|
PGPASSWORD=$POSTGRES_PASSWORD pg_dump \
|
|
-h $POSTGRES_HOST \
|
|
-U $POSTGRES_USER \
|
|
-d $POSTGRES_DB \
|
|
--no-owner \
|
|
--no-acl \
|
|
| gzip > $BACKUP_FILE
|
|
|
|
# 检查备份是否成功
|
|
if [ -f "$BACKUP_FILE" ]; then
|
|
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
|
echo "备份完成:$BACKUP_FILE (大小: $BACKUP_SIZE)"
|
|
else
|
|
echo "备份失败!"
|
|
exit 1
|
|
fi
|
|
|
|
# 删除 30 天前的备份
|
|
find $BACKUP_DIR -name "backup_*.sql.gz" -mtime +30 -delete
|
|
echo "已清理 30 天前的备份文件"
|
|
|
|
echo "备份任务完成"
|