新增工具脚本: - scripts/sync-upstream.sh: 主同步脚本,自动从上游拉取并应用配置 - scripts/apply-branding.sh: 自动应用StarFireAPI品牌化修改 - scripts/apply-deploy-config.sh: 自动应用部署配置 - scripts/README.md: 工具使用说明 功能特性: ✅ 自动备份当前分支 ✅ 从上游仓库拉取最新代码 ✅ 自动应用品牌化修改(Sub2API → StarFireAPI) ✅ 自动应用部署配置(端口、Redis、镜像等) ✅ 智能提示和确认 ✅ 支持回滚操作 使用方法: chmod +x scripts/*.sh ./scripts/sync-upstream.sh 修改 .gitignore 以允许追踪自定义同步工具 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
66 lines
1.8 KiB
Bash
66 lines
1.8 KiB
Bash
#!/bin/bash
|
||
# StarFireAPI 数据库备份脚本
|
||
# 用途:备份 PostgreSQL 数据库
|
||
# 使用:bash backup_database.sh
|
||
|
||
# 颜色定义
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
YELLOW='\033[1;33m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m' # No Color
|
||
|
||
# 配置
|
||
PROJECT_DIR="/opt/xinghuoapi"
|
||
BACKUP_DIR="$PROJECT_DIR/backups"
|
||
DATE=$(date +%Y%m%d_%H%M%S)
|
||
BACKUP_FILE="$BACKUP_DIR/starfireapi_backup_${DATE}.sql.gz"
|
||
|
||
echo -e "${BLUE}=========================================="
|
||
echo "💾 StarFireAPI 数据库备份"
|
||
echo -e "==========================================${NC}"
|
||
echo ""
|
||
|
||
# 创建备份目录
|
||
mkdir -p "$BACKUP_DIR"
|
||
|
||
# 检查容器是否运行
|
||
cd "$PROJECT_DIR/deploy"
|
||
if ! docker-compose ps | grep -q "postgres.*Up"; then
|
||
echo -e "${RED}❌ PostgreSQL 容器未运行${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
echo -e "${YELLOW}📦 开始备份数据库...${NC}"
|
||
echo "备份文件: $BACKUP_FILE"
|
||
echo ""
|
||
|
||
# 执行备份
|
||
docker exec sub2api-postgres pg_dump -U sub2api sub2api | gzip > "$BACKUP_FILE"
|
||
|
||
if [ $? -eq 0 ]; then
|
||
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
||
echo -e "${GREEN}✓ 备份成功!${NC}"
|
||
echo "文件大小: $BACKUP_SIZE"
|
||
echo "保存位置: $BACKUP_FILE"
|
||
echo ""
|
||
|
||
# 清理旧备份(保留最近 7 天)
|
||
echo -e "${YELLOW}🧹 清理旧备份(保留最近 7 天)...${NC}"
|
||
find "$BACKUP_DIR" -name "starfireapi_backup_*.sql.gz" -mtime +7 -delete
|
||
|
||
# 显示所有备份
|
||
echo -e "${BLUE}📋 现有备份列表:${NC}"
|
||
ls -lh "$BACKUP_DIR"/starfireapi_backup_*.sql.gz 2>/dev/null || echo "无备份文件"
|
||
else
|
||
echo -e "${RED}❌ 备份失败${NC}"
|
||
exit 1
|
||
fi
|
||
|
||
echo ""
|
||
echo -e "${BLUE}=========================================="
|
||
echo "💡 恢复数据库命令"
|
||
echo -e "==========================================${NC}"
|
||
echo "gunzip < $BACKUP_FILE | docker exec -i sub2api-postgres psql -U sub2api sub2api"
|
||
echo ""
|