📚 小说内容: - 《末日重生-开局囤货十亿物资》33章 - 完整的状态文件、记忆索引、钩子系统 🛠️ 系统配置: - 版本控制管理系统 - 自动化脚本系统 - 质量监控系统 🧠 固化记忆: - 长期记忆文件 - 系统配置文档 - 恢复流程指南 💾 数据安全: - 本地备份系统 - Git版本控制 - 远程同步机制 同步时间: 2026-03-30 16:25:35 系统状态: inkos正常运行中 (PID: 1433309) 创作进度: 第33章《油粮》创作中
154 lines
4.2 KiB
Bash
Executable File
154 lines
4.2 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# 本地备份系统 - 临时解决方案
|
||
# 解决远程仓库不存在时的数据同步问题
|
||
|
||
set -e
|
||
|
||
echo "🚀 启动本地Git备份系统"
|
||
echo "==============================="
|
||
|
||
WORKSPACE_DIR="/root/.openclaw/workspace"
|
||
cd "$WORKSPACE_DIR"
|
||
|
||
BACKUP_DIR="$WORKSPACE_DIR/git-backups"
|
||
mkdir -p "$BACKUP_DIR"
|
||
|
||
# 1. 创建本地备份
|
||
BACKUP_NAME="git-backup-$(date '+%Y%m%d_%H%M%S')"
|
||
BACKUP_FILE="$BACKUP_DIR/$BACKUP_NAME.tar.gz"
|
||
|
||
echo "📦 1. 创建本地备份..."
|
||
git archive --format=tar.gz --output="$BACKUP_FILE" HEAD
|
||
|
||
BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
||
echo " ✅ 备份完成: $BACKUP_NAME.tar.gz ($BACKUP_SIZE)"
|
||
|
||
# 2. 导出当前状态
|
||
STATUS_FILE="$BACKUP_DIR/git-status-$(date '+%Y%m%d_%H%M%S').txt"
|
||
echo "📋 2. 导出Git状态..."
|
||
{
|
||
echo "=== Git 状态报告 $(date) ==="
|
||
echo ""
|
||
echo "分支状态:"
|
||
git branch -vv
|
||
echo ""
|
||
echo "提交历史:"
|
||
git log --oneline -10
|
||
echo ""
|
||
echo "未提交的变更:"
|
||
git status --short
|
||
echo ""
|
||
echo "远程仓库配置:"
|
||
git remote -v
|
||
} > "$STATUS_FILE"
|
||
|
||
echo " ✅ 状态报告: $(basename "$STATUS_FILE")"
|
||
|
||
# 3. 创建离线同步包
|
||
SYNC_PACKAGE="$BACKUP_DIR/sync-package-$(date '+%Y%m%d_%H%M%S').tar.gz"
|
||
echo "📁 3. 创建离线同步包..."
|
||
tar -czf "$SYNC_PACKAGE" \
|
||
--exclude="*.pyc" \
|
||
--exclude="__pycache__" \
|
||
--exclude="node_modules" \
|
||
--exclude="*.log" \
|
||
--exclude="*.tmp" \
|
||
--exclude="backups" \
|
||
.
|
||
|
||
SYNC_SIZE=$(du -h "$SYNC_PACKAGE" | cut -f1)
|
||
echo " ✅ 同步包: $(basename "$SYNC_PACKAGE") ($SYNC_SIZE)"
|
||
|
||
# 4. 创建修复脚本
|
||
FIX_SCRIPT="$BACKUP_DIR/restore-git.sh"
|
||
cat > "$FIX_SCRIPT" << 'EOF'
|
||
#!/bin/bash
|
||
# Git恢复脚本
|
||
|
||
echo "🔧 Git恢复工具"
|
||
echo "================"
|
||
|
||
# 选项菜单
|
||
echo "请选择恢复选项:"
|
||
echo "1. 恢复完整备份"
|
||
echo "2. 恢复Git仓库"
|
||
echo "3. 查看备份列表"
|
||
echo "4. 检查系统状态"
|
||
echo "5. 创建远程仓库"
|
||
read -p "选择 (1-5): " choice
|
||
|
||
case $choice in
|
||
1)
|
||
echo "恢复完整备份..."
|
||
BACKUP_FILE=$(ls -t git-backup-*.tar.gz | head -1)
|
||
if [ -f "$BACKUP_FILE" ]; then
|
||
echo "恢复: $BACKUP_FILE"
|
||
tar -xzf "$BACKUP_FILE" -C /tmp/
|
||
echo "✅ 备份已解压到 /tmp/"
|
||
else
|
||
echo "❌ 找不到备份文件"
|
||
fi
|
||
;;
|
||
2)
|
||
echo "恢复Git仓库..."
|
||
git init
|
||
git remote add origin https://gitea.nevadalice.top:226/liyuchen/tomato-novel-workspace.git
|
||
echo "✅ Git仓库已初始化"
|
||
echo "📝 下一步: git fetch origin"
|
||
;;
|
||
3)
|
||
echo "备份列表:"
|
||
ls -lh git-backup-*.tar.gz
|
||
ls -lh git-status-*.txt
|
||
ls -lh sync-package-*.tar.gz
|
||
;;
|
||
4)
|
||
echo "系统状态:"
|
||
git status
|
||
git remote -v
|
||
git log --oneline -5
|
||
;;
|
||
5)
|
||
echo "创建远程仓库:"
|
||
echo "1. 访问 https://gitea.nevadalice.top:226"
|
||
echo "2. 登录账号"
|
||
echo "3. 点击'新建仓库'"
|
||
echo "4. 名称: tomato-novel-workspace"
|
||
echo "5. 描述: 番茄小说创作工作区"
|
||
echo "6. 点击'创建仓库'"
|
||
echo ""
|
||
echo "然后执行:"
|
||
echo "git remote add origin https://gitea.nevadalice.top:226/liyuchen/tomato-novel-workspace.git"
|
||
echo "git push -u origin master"
|
||
;;
|
||
*)
|
||
echo "❌ 无效选择"
|
||
;;
|
||
esac
|
||
EOF
|
||
|
||
chmod +x "$FIX_SCRIPT"
|
||
|
||
# 5. 清理旧备份(保留最近7天)
|
||
echo "🧹 4. 清理旧备份..."
|
||
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete
|
||
find "$BACKUP_DIR" -name "*.txt" -mtime +7 -delete
|
||
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +7 -delete
|
||
|
||
echo ""
|
||
echo "📊 备份统计:"
|
||
echo " 本地备份: $(ls $BACKUP_DIR/git-backup-*.tar.gz 2>/dev/null | wc -l) 个"
|
||
echo " 状态报告: $(ls $BACKUP_DIR/git-status-*.txt 2>/dev/null | wc -l) 个"
|
||
echo " 同步包: $(ls $BACKUP_DIR/sync-package-*.tar.gz 2>/dev/null | wc -l) 个"
|
||
|
||
echo ""
|
||
echo "🎉 本地备份系统就绪!"
|
||
echo ""
|
||
echo "📁 备份目录: $BACKUP_DIR"
|
||
echo "🔧 恢复工具: $FIX_SCRIPT"
|
||
echo ""
|
||
echo "🚀 下一步操作:"
|
||
echo " 1. 检查备份: ls -lh $BACKUP_DIR/"
|
||
echo " 2. 手动创建远程仓库(推荐)"
|
||
echo " 3. 或使用本地备份系统保证数据安全" |