#!/bin/bash # backup.sh - 数据库备份 + OSS上传 set -euo pipefail DB_URL="${DATABASE_URL:-host=/var/run/postgresql dbname=llm_intelligence user=long sslmode=disable}" BACKUP_DIR="/tmp/llm_hub_backups" DATE=$(date +%Y%m%d_%H%M%S) BACKUP_FILE="${BACKUP_DIR}/llm_intelligence_${DATE}.sql" mkdir -p "$BACKUP_DIR" # 1. pg_dump 备份 echo "[$(date)] 开始备份..." pg_dump "$DB_URL" > "$BACKUP_FILE" gzip "$BACKUP_FILE" # 2. 保留最近7天 echo "[$(date)] 清理过期备份..." find "$BACKUP_DIR" -name "*.sql.gz" -mtime +7 -delete # 3. 如果有 OSS 工具则上传 if command -v ossutil &> /dev/null; then echo "[$(date)] 上传至 OSS..." ossutil cp "${BACKUP_FILE}.gz" "oss://your-bucket/llm-hub-backups/" || true fi echo "[$(date)] 备份完成: ${BACKUP_FILE}.gz" ls -lh "${BACKUP_FILE}.gz"