novel-doomsday-resurgence/scripts/auto-backup.sh
唐天洛 4038ad878f feat(git-management): 添加版本控制管理系统和自动备份脚本
- 创建 VERSION_CONTROL.md - 完整的版本控制管理指南
- 添加 auto-backup.sh - 自动备份脚本,支持增量备份
- 完善 Git 工作流,支持小说章节的版本管理
- 解决重复版本混乱问题,实现系统化版本控制
2026-03-30 16:02:27 +08:00

68 lines
1.3 KiB
Bash
Executable File
Raw 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
# 自动备份脚本
# 每天定时运行,备份当前工作区
set -e
echo "🔄 开始自动备份 $(date '+%Y-%m-%d %H:%M:%S')..."
# 工作区路径
WORKSPACE_DIR="/root/.openclaw/workspace"
BACKUP_DIR="$WORKSPACE_DIR/backups"
# 创建备份目录
mkdir -p "$BACKUP_DIR"
# 生成备份文件名
BACKUP_FILE="$BACKUP_DIR/backup-$(date '+%Y%m%d_%H%M%S').tar.gz"
# 排除不需要备份的文件
exclude_patterns=(
'*.pyc'
'__pycache__'
'backups'
'node_modules'
'.venv'
'*.log'
'*.tmp'
)
# 构建排除参数
EXCLUDE_ARGS=()
for pattern in "${exclude_patterns[@]}"; do
EXCLUDE_ARGS+=(--exclude="$pattern")
done
echo "📦 打包工作区..."
# 创建备份
tar -czf "$BACKUP_FILE" \
--exclude-vcs \
--exclude="*.pyc" \
--exclude="__pycache__" \
--exclude="backups" \
--exclude="node_modules" \
--exclude=".venv" \
--exclude="*.log" \
--exclude="*.tmp" \
-C "$WORKSPACE_DIR" .
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "✅ 备份完成: $(basename "$BACKUP_FILE")"
echo " 📏 大小: $BACKUP_SIZE"
echo " 📍 位置: $BACKUP_FILE"
# 保留最近30个备份
echo "🧹 清理旧备份保留最近30个..."
cd "$BACKUP_DIR"
ls -t *.tar.gz | tail -n +31 | xargs -r rm -f
# 显示备份状态
echo ""
echo "📊 备份状态:"
ls -lh *.tar.gz | tail -5
echo ""
echo "🎉 自动备份完成!"