!bin/bash

openclaw 中文openclaw 2

以下是一份详细的OpenClaw数据备份设置指南,分为 【核心数据识别】【备份策略】【实操方法】【恢复流程】 四部分。

!bin/bash-第1张图片-OpenClaw下载中文-AI中文智能体


核心需要备份的数据路径(关键!)

OpenClaw的默认安装目录通常是 /home/ubuntu/OpenClaw 或您指定的路径,您需要重点关注以下子目录和文件:

  1. 配置与模型数据

    • /home/ubuntu/OpenClaw/models/这是最核心的目录! 存放了所有下载或训练好的大语言模型文件(如Qwen、Llama等),体积巨大(数十GB),但不可重建。
    • /home/ubuntu/OpenClaw/configs/: 系统配置文件,包含模型参数、API密钥、系统设置等。
    • /home/ubuntu/OpenClaw/docker-compose.yml: 如果您使用Docker部署,这个文件定义了所有服务。
    • /home/ubuntu/OpenClaw/.env: 环境变量文件,包含数据库密码、密钥等重要敏感信息。
  2. 数据库数据

    • 默认使用Docker容器内的数据库。备份的关键是导出数据库内容
    • 主要数据: 用户对话历史、知识库文档、用户信息等都存储在数据库(通常是PostgreSQL或MySQL)中。
    • 备份命令: 您需要从运行的数据库容器中执行导出操作。
      # 假设数据库服务名为 `openclaw-db`,数据库名为 `openclaw`
      docker exec openclaw-db pg_dump -U postgres openclaw > /path/to/backup/openclaw_db_backup_$(date +%Y%m%d).sql
      # 或对于MySQL
      docker exec openclaw-db mysqldump -u root -p密码 openclaw > /path/to/backup/openclaw_db_backup_$(date +%Y%m%d).sql
  3. 知识库文件

    • 如果您使用了“知识库”或“文件上传”功能,上传的原始文件(PDF、Word等)可能存放在某个特定目录,data/uploads/ 或通过配置指定,请在 configs/ 中查找相关路径配置。
  4. 日志文件(可选,用于调试):

    • /home/ubuntu/OpenClaw/logs/

推荐的备份策略

  • 全量备份 + 增量备份
    • 每周进行一次全量备份(包括所有模型文件、配置和数据库导出),由于模型文件巨大,可考虑第一次全量后,后续只备份新增/更改的模型。
    • 每天进行一次增量备份(仅备份数据库导出、新增配置和知识库文件)。
  • 3-2-1 原则
    • 至少保存 3 份备份。
    • 使用 2 种不同的存储介质(本地硬盘 + 云存储)。
    • 1 份存放在异地(阿里云OSS、腾讯云COS、Backblaze B2、另一台服务器)。

具体备份方法

手动备份脚本(推荐)

创建一个备份脚本 backup_openclaw.sh,并赋予执行权限 (chmod +x backup_openclaw.sh)。

# ===== 配置区 =====
OPENCLAW_HOME="/home/ubuntu/OpenClaw"
BACKUP_ROOT="/home/ubuntu/OpenClaw_Backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="$BACKUP_ROOT/$DATE"
# 数据库容器名和服务名
DB_CONTAINER="openclaw-db"
DB_NAME="openclaw"
DB_USER="postgres"
# ===== 执行区 =====
echo "开始备份 OpenClaw, 时间: $DATE"
mkdir -p $BACKUP_DIR
# 1. 备份配置和关键文件
echo "备份配置和关键文件..."
cp -r $OPENCLAW_HOME/configs $BACKUP_DIR/
cp $OPENCLAW_HOME/docker-compose.yml $BACKUP_DIR/
cp $OPENCLAW_HOME/.env $BACKUP_DIR/ 2>/dev/null || echo ".env 文件不存在,跳过。"
# 2. 备份数据库 (PostgreSQL 示例)
echo "备份数据库..."
docker exec $DB_CONTAINER pg_dump -U $DB_USER $DB_NAME > $BACKUP_DIR/openclaw_db.sql
if [ $? -eq 0 ]; then
    echo "数据库备份成功。"
else
    echo "数据库备份失败!请检查容器名和数据库配置。"
    exit 1
fi
# 3. 选择性备份模型(首次建议全量,后续可注释掉以节省空间)
echo "备份模型文件(这是一个耗时且占用空间的操作)..."
# 使用 rsync 可以后续进行增量备份
rsync -av --progress $OPENCLAW_HOME/models/ $BACKUP_DIR/models/ 2>&1 | tee $BACKUP_DIR/rsync_model.log
# 4. 备份知识库上传文件(如果存在且路径明确)
UPLOAD_DIR="$OPENCLAW_HOME/data/uploads"
if [ -d "$UPLOAD_DIR" ]; then
    echo "备份知识库上传文件..."
    rsync -av $UPLOAD_DIR/ $BACKUP_DIR/uploads/
fi
# 5. 打包备份文件夹(可选,方便传输)
echo "打包备份文件夹..."
cd $BACKUP_ROOT
tar -czf $DATE.tar.gz $DATE/
if [ $? -eq 0 ]; then
    echo "打包成功,文件:$BACKUP_ROOT/$DATE.tar.gz"
    # 可以选择删除原文件夹以节省空间
    # rm -rf $BACKUP_DIR
else
    echo "打包失败。"
fi
echo "===== 备份完成! ====="
echo "备份存放在:$BACKUP_DIR 或 $BACKUP_ROOT/$DATE.tar.gz"

运行方式

cd ~
./backup_openclaw.sh

使用定时任务自动备份

使用Linux的 crontab 设置自动任务。

  1. 编辑当前用户的crontab:

    crontab -e
  2. 添加以下行,实现每天凌晨2点进行增量备份(主要备份数据库和配置),每周日凌晨3点进行全量备份(包含模型):

    # 每天凌晨2点,运行备份脚本(假设脚本已配置为增量模式,或自行修改脚本逻辑)
    0 2 * * * /home/ubuntu/backup_openclaw_daily.sh >> /home/ubuntu/backup_daily.log 2>&1
    # 每周日凌晨3点,运行完整备份脚本
    0 3 * * 0 /home/ubuntu/backup_openclaw_full.sh >> /home/ubuntu/backup_full.log 2>&1

    你需要创建两个脚本:backup_openclaw_daily.sh (主要备份DB和configs) 和 backup_openclaw_full.sh (额外备份models)。

同步到云存储(增强安全性)

在本地备份的基础上,将打包后的 *.tar.gz 文件同步到云存储。

  • 使用 rclone: 一个强大的命令行云同步工具。
    • 安装并配置rclone连接到你的云盘(如Google Drive, OneDrive, 阿里云OSS等)。
    • 在备份脚本最后添加:
      echo "同步到云存储..."
      rclone copy $BACKUP_ROOT/$DATE.tar.gz mycloud:OpenClawBackups/
  • 使用云厂商的CLI工具: 如 aws s3 cp, ossutil 等。

数据恢复流程

当需要恢复时,遵循以下步骤:

  1. 准备新环境: 在新机器上安装好相同版本的Docker、Docker Compose等依赖。
  2. 恢复文件
    • 将备份的 configs/docker-compose.yml.env 复制到新的 OpenClaw 目录。
    • models/ 目录复制到相应位置(耗时最长)。
  3. 恢复数据库
    • 使用 docker-compose up -d 启动数据库服务(但先不启动应用)。
    • 将备份的SQL文件复制到数据库容器内并导入:
      docker cp /path/to/backup/openclaw_db.sql openclaw-db:/tmp/
      docker exec openclaw-db psql -U postgres -d openclaw -f /tmp/openclaw_db.sql
  4. 启动服务
    • 修改 .env 中的配置(如IP地址等)以适应新环境。
    • 运行 docker-compose up -d 启动所有服务。
  5. 验证: 登录Web界面,检查用户、对话历史和知识库是否完整。

总结与建议

  1. 立即行动: 安装完成后,第一时间进行首次全量备份。
  2. 自动化: 务必设置 crontab 自动备份,避免遗忘。
  3. 异地备份: 至少将每周的全量备份包上传到另一个物理位置或云端。
  4. 定期测试恢复: 每季度或每半年,在测试环境演练一次恢复流程,确保备份有效。
  5. 文档化: 将您的备份策略、脚本位置、恢复步骤记录下来。

通过以上设置,您的OpenClaw数据和模型资产将得到有效保护。

标签: bash shebang

抱歉,评论功能暂时关闭!