chore: 清理 scripts 目录,保留核心运维和部署脚本
## 变更内容 ### 保留的核心运维脚本 - ✅ start.sh - 启动服务 - ✅ stop.sh - 停止服务 - ✅ init-pgvector.sql - 数据库初始化 ### 保留的部署工具 - ✅ deploy-production.sh - 生产环境部署 - ✅ backup-production.sh - 生产环境备份 - ✅ set-contact-token.sh - 设置联系令牌 - ✅ set-remote-contact-token.sh - 设置远程令牌 - ✅ verify-contact-token.sh - 验证令牌 ### 删除的临时调试脚本 - ❌ debug-webhook.sh - 实时监控日志 - ❌ check-conversations.sh - 检查会话 - ❌ check-chatwoot-config.sh - 检查配置 - ❌ verify-webhook.sh - 验证webhook - ❌ update-chatwoot-webhook.sh - 更新webhook Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
95
scripts/backup-production.sh
Executable file
95
scripts/backup-production.sh
Executable file
@@ -0,0 +1,95 @@
|
||||
#!/bin/bash
|
||||
# B2B Shopping AI Assistant - Production Backup Script
|
||||
# 生产环境备份脚本
|
||||
|
||||
set -e
|
||||
|
||||
# 配置
|
||||
BACKUP_DIR="./backups"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
RETENTION_DAYS=7
|
||||
|
||||
# 颜色输出
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
NC='\033[0m'
|
||||
|
||||
log_info() {
|
||||
echo -e "${GREEN}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
log_warn() {
|
||||
echo -e "${YELLOW}[WARN]${NC} $1"
|
||||
}
|
||||
|
||||
# 创建备份目录
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
log_info "========================================"
|
||||
log_info "生产环境备份 - $DATE"
|
||||
log_info "========================================"
|
||||
echo ""
|
||||
|
||||
# 1. 备份 Redis 数据
|
||||
log_info "1. 备份 Redis 数据..."
|
||||
docker run --rm \
|
||||
-v ai_redis_data_prod:/data \
|
||||
-v "$(pwd)/$BACKUP_DIR":/backup \
|
||||
alpine tar czf /backup/redis-$DATE.tar.gz -C /data .
|
||||
|
||||
log_info "✅ Redis 数据备份完成: redis-$DATE.tar.gz"
|
||||
|
||||
# 2. 备份 Agent 日志
|
||||
log_info "2. 备份 Agent 日志..."
|
||||
docker run --rm \
|
||||
-v ai_agent_logs_prod:/data \
|
||||
-v "$(pwd)/$BACKUP_DIR":/backup \
|
||||
alpine tar czf /backup/agent-logs-$DATE.tar.gz -C /data .
|
||||
|
||||
log_info "✅ Agent 日志备份完成: agent-logs-$DATE.tar.gz"
|
||||
|
||||
# 3. 备份 Grafana 配置(如果存在)
|
||||
if docker volume inspect ai_grafana_data &> /dev/null; then
|
||||
log_info "3. 备份 Grafana 配置..."
|
||||
docker run --rm \
|
||||
-v ai_grafana_data:/data \
|
||||
-v "$(pwd)/$BACKUP_DIR":/backup \
|
||||
alpine tar czf /backup/grafana-$DATE.tar.gz -C /data .
|
||||
|
||||
log_info "✅ Grafana 配置备份完成: grafana-$DATE.tar.gz"
|
||||
fi
|
||||
|
||||
# 4. 备份环境变量文件
|
||||
log_info "4. 备份环境变量文件..."
|
||||
cp .env.production "$BACKUP_DIR/env-$DATE.backup"
|
||||
chmod 600 "$BACKUP_DIR/env-$DATE.backup"
|
||||
|
||||
log_info "✅ 环境变量备份完成: env-$DATE.backup"
|
||||
|
||||
# 5. 清理旧备份
|
||||
log_info "5. 清理 $RETENTION_DAYS 天前的旧备份..."
|
||||
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +$RETENTION_DAYS -delete
|
||||
find "$BACKUP_DIR" -name "env-*.backup" -mtime +$RETENTION_DAYS -delete
|
||||
|
||||
log_info "✅ 旧备份清理完成"
|
||||
|
||||
# 6. 生成备份清单
|
||||
log_info "6. 生成备份清单..."
|
||||
cat > "$BACKUP_DIR/manifest-$DATE.txt" << EOF
|
||||
备份时间: $DATE
|
||||
备份内容:
|
||||
- Redis 数据: redis-$DATE.tar.gz
|
||||
- Agent 日志: agent-logs-$DATE.tar.gz
|
||||
- 环境变量: env-$DATE.backup
|
||||
EOF
|
||||
|
||||
log_info "✅ 备份清单生成完成: manifest-$DATE.txt"
|
||||
|
||||
echo ""
|
||||
log_info "========================================"
|
||||
log_info "✅ 备份完成!"
|
||||
log_info "========================================"
|
||||
echo ""
|
||||
log_info "备份文件位置: $BACKUP_DIR"
|
||||
log_info ""
|
||||
ls -lh "$BACKUP_DIR" | grep "$DATE"
|
||||
Reference in New Issue
Block a user