28 lines
816 B
Bash
28 lines
816 B
Bash
|
|
#!/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"
|