Files
ztb/scripts/backup.sh
ztb-system 5f93dbe5e4 feat: 添加云端部署准备工作
- 添加 .env.example 环境变量模板
- 创建部署辅助脚本(run_crawler.sh、health_check.sh、backup.sh)
- 更新 .gitignore 排除备份目录
- 添加云端部署指南文档
2026-02-25 10:27:36 +08:00

71 lines
2.0 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 数据备份脚本
# 用于备份重要数据
# 获取脚本所在目录
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_DIR"
echo "=========================================="
echo "开始备份: $(date '+%Y-%m-%d %H:%M:%S')"
echo "=========================================="
# 配置
BACKUP_DIR="${PROJECT_DIR}/backups"
DATE=$(date +"%Y%m%d_%H%M%S")
KEEP_DAYS=30
# 创建备份目录
mkdir -p "$BACKUP_DIR"
echo "备份目录: $BACKUP_DIR"
echo "备份日期: $DATE"
echo ""
# 1. 备份数据目录
echo "[1/3] 备份数据目录..."
if [ -d "data" ]; then
DATA_BACKUP_FILE="${BACKUP_DIR}/data_${DATE}.tar.gz"
tar -czf "$DATA_BACKUP_FILE" data/
echo "✅ 数据备份完成: $DATA_BACKUP_FILE"
echo " 文件大小: $(du -h "$DATA_BACKUP_FILE" | cut -f1)"
else
echo "⚠️ data目录不存在跳过数据备份"
fi
# 2. 备份日志目录(可选)
echo ""
echo "[2/3] 备份日志目录..."
if [ -d "logs" ]; then
LOGS_BACKUP_FILE="${BACKUP_DIR}/logs_${DATE}.tar.gz"
tar -czf "$LOGS_BACKUP_FILE" logs/
echo "✅ 日志备份完成: $LOGS_BACKUP_FILE"
echo " 文件大小: $(du -h "$LOGS_BACKUP_FILE" | cut -f1)"
else
echo "⚠️ logs目录不存在跳过日志备份"
fi
# 3. 清理旧备份
echo ""
echo "[3/3] 清理${KEEP_DAYS}天前的旧备份..."
OLD_BACKUPS=$(find "$BACKUP_DIR" -name "*.tar.gz" -mtime +${KEEP_DAYS} -print | wc -l)
if [ "$OLD_BACKUPS" -gt 0 ]; then
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +${KEEP_DAYS} -delete
echo "✅ 已删除 ${OLD_BACKUPS} 个旧备份文件"
else
echo "✅ 没有需要清理的旧备份"
fi
# 统计
echo ""
echo "=========================================="
echo "备份完成: $(date '+%Y-%m-%d %H:%M:%S')"
echo "备份文件数量: $(ls -1 "$BACKUP_DIR"/*.tar.gz 2>/dev/null | wc -l)"
echo "总备份大小: $(du -sh "$BACKUP_DIR" 2>/dev/null | cut -f1)"
echo "=========================================="
echo ""
echo "✅ 备份任务完成!"
exit 0