添加上游同步自动化工具
新增工具脚本: - 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>
This commit is contained in:
65
scripts/backup_database.sh
Normal file
65
scripts/backup_database.sh
Normal file
@@ -0,0 +1,65 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user