所有文章
OpenClaw 完整備份、還原與搬遷指南

OpenClaw 完整備份、還原與搬遷指南

|4 分鐘閱讀

你的 OpenClaw 實例裡儲存了對話記錄、記憶、個人化設定、Skills 和各種認證資訊。一次意外的磁碟損壞或不小心的 rm -rf,就能讓數月的互動成果歸零。

備份不是可選的,是必要的。本文完整介紹備份策略——從手動 tar 到自動化雲端同步,再到跨伺服器搬遷。

理解資料結構

~/.openclaw/ 目錄

~/.openclaw/
  openclaw.json         # 核心設定檔(含 API 金鑰)
  gateway.db            # Gateway 資料庫(對話、狀態)
  memory/               # 長期記憶系統
    embeddings.db       # 記憶向量資料庫
    documents/          # 記憶文件
  skills/               # 已安裝的 Skills
  sessions/             # 頻道 Session(Telegram/WhatsApp/Discord)
  logs/                 # 日誌檔案
  plugins/              # 已安裝的外掛
目錄/檔案 重要性 丟失後果
openclaw.json 關鍵 所有設定需重新配置
gateway.db 關鍵 對話歷史全部遺失
memory/ 關鍵 長期記憶不可恢復
skills/ 重要 可重裝但自訂設定丟失
sessions/ 重要 需重新配對所有頻道
logs/ 一般 無重大影響

核心原則: openclaw.jsongateway.dbmemory/ 絕對不能丟。

手動備份

基本 tar 備份

# 停止 OpenClaw(確保資料一致性)
openclaw stop

# 建立帶時間戳的備份
BACKUP_NAME="openclaw-backup-$(date +%Y%m%d-%H%M%S).tar.gz"
tar -czf ~/$BACKUP_NAME -C ~ .openclaw/

# 重新啟動
openclaw start
echo "Backup created: ~/$BACKUP_NAME"

不停機備份

gateway.db 是 SQLite 資料庫,寫入中備份可能損壞[1]。用 SQLite 備份 API 可以安全地不停機備份:

sqlite3 ~/.openclaw/gateway.db ".backup '/tmp/gateway-backup.db'"
sqlite3 ~/.openclaw/memory/embeddings.db ".backup '/tmp/embeddings-backup.db'"

tar -czf ~/openclaw-backup-$(date +%Y%m%d).tar.gz \
  --exclude='.openclaw/gateway.db' \
  --exclude='.openclaw/memory/embeddings.db' \
  --exclude='.openclaw/logs' \
  -C ~ .openclaw/

# 手動加入安全備份的資料庫
cp /tmp/gateway-backup.db /tmp/embeddings-backup.db ~/
rm /tmp/gateway-backup.db /tmp/embeddings-backup.db

自動化 Cron 備份

sudo tee /usr/local/bin/openclaw-backup.sh << 'SCRIPT'
#!/bin/bash
set -euo pipefail

BACKUP_DIR="/var/backups/openclaw"
OPENCLAW_DIR="$HOME/.openclaw"
RETENTION_DAYS=30

mkdir -p "$BACKUP_DIR"
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
BACKUP_FILE="$BACKUP_DIR/openclaw-$TIMESTAMP.tar.gz"

# SQLite 安全備份
TEMP_DIR=$(mktemp -d)
sqlite3 "$OPENCLAW_DIR/gateway.db" ".backup '$TEMP_DIR/gateway.db'" 2>/dev/null || true
sqlite3 "$OPENCLAW_DIR/memory/embeddings.db" ".backup '$TEMP_DIR/embeddings.db'" 2>/dev/null || true

tar -czf "$BACKUP_FILE" \
  --exclude='logs' --exclude='*.log' \
  --exclude='gateway.db' --exclude='embeddings.db' \
  -C "$(dirname $OPENCLAW_DIR)" "$(basename $OPENCLAW_DIR)/" \
  -C "$TEMP_DIR" gateway.db embeddings.db 2>/dev/null

rm -rf "$TEMP_DIR"
find "$BACKUP_DIR" -name "openclaw-*.tar.gz" -mtime +$RETENTION_DAYS -delete

BACKUP_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
echo "$(date): Backup completed: $BACKUP_FILE ($BACKUP_SIZE)" >> "$BACKUP_DIR/backup.log"
SCRIPT

chmod +x /usr/local/bin/openclaw-backup.sh

# 每天凌晨 3 點備份
(crontab -l 2>/dev/null; echo "0 3 * * * /usr/local/bin/openclaw-backup.sh") | crontab -

備份驗證

沒有驗證的備份等於沒有備份:

# 驗證 tar 完整性
tar -tzf /var/backups/openclaw/openclaw-latest.tar.gz > /dev/null && echo "OK" || echo "CORRUPTED"

# 計算校驗碼
sha256sum backup.tar.gz > backup.tar.gz.sha256
sha256sum -c backup.tar.gz.sha256

雲端備份

本地備份無法防禦硬碟損壞或整台伺服器的災難。3-2-1 備份策略要求至少一份異地副本[2]

AWS S3

aws s3 sync /var/backups/openclaw/ s3://your-bucket/openclaw-backups/ \
  --storage-class STANDARD_IA --exclude "*.log"

Backblaze B2(更便宜)

B2 的儲存成本約為 S3 的四分之一[3]

pip install b2
b2 authorize-account YOUR_KEY_ID YOUR_APPLICATION_KEY
b2 sync /var/backups/openclaw/ b2://openclaw-backups/

rclone(萬用方案)

rclone sync /var/backups/openclaw/ remote:openclaw-backups/
# 加密同步(推薦,因為備份含 API 金鑰)
rclone sync /var/backups/openclaw/ remote-crypt:openclaw-backups/

備份加密

上傳雲端前務必加密:

gpg --symmetric --cipher-algo AES256 ~/openclaw-backup.tar.gz
# 解密
gpg --decrypt openclaw-backup.tar.gz.gpg > openclaw-backup.tar.gz

還原流程

完整還原

openclaw stop
mv ~/.openclaw ~/.openclaw.old    # 備份目前資料
tar -xzf ~/openclaw-backup.tar.gz -C ~/
openclaw start
openclaw doctor

部分還原

# 只還原設定
tar -xzf backup.tar.gz -C ~/tmp-restore/
cp ~/tmp-restore/.openclaw/openclaw.json ~/.openclaw/

# 只還原記憶
openclaw stop
cp ~/tmp-restore/.openclaw/memory/* ~/.openclaw/memory/
openclaw start

還原後檢查清單

openclaw status          # 確認運行中
openclaw doctor          # 診斷通過
openclaw config list     # API 金鑰正確
openclaw memory search "test"  # 記憶搜尋正常
openclaw skills list     # Skills 已載入
# 從 Telegram/WhatsApp 發送測試訊息

伺服器搬遷

在舊伺服器上

openclaw stop
BACKUP="openclaw-migration-$(date +%Y%m%d).tar.gz"
tar -czf ~/$BACKUP -C ~ .openclaw/
openclaw --version > ~/migration-info.txt
scp ~/$BACKUP user@new-server:~/

在新伺服器上

# 安裝 Node.js 和 OpenClaw
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
npx openclaw onboard --skip-config

# 還原備份
tar -xzf ~/openclaw-migration-*.tar.gz -C ~/
openclaw start
openclaw doctor

Docker 環境搬遷

# 舊伺服器:備份 Volume
docker compose down
docker run --rm \
  -v openclaw_data:/data -v $(pwd):/backup \
  alpine tar -czf /backup/openclaw-volume.tar.gz -C /data .

# 新伺服器:還原 Volume
docker compose up -d && docker compose down
docker run --rm \
  -v openclaw_data:/data -v ~/:/backup \
  alpine sh -c "cd /data && tar -xzf /backup/openclaw-volume.tar.gz"
docker compose up -d

別忘了更新 DNS 記錄指向新伺服器 IP。

處理頻道 Sessions

Telegram Bot

Token 是全域的,不和伺服器綁定。備份 openclaw.json 中的 Token 後搬遷即可。如果配對失效:

openclaw pairing approve telegram CODE

WhatsApp

WhatsApp Session 基於 WhatsApp Web 認證,和伺服器環境有一定綁定[4]。搬遷後有機率失效,需重新掃描 QR Code:

openclaw config set whatsapp.session ""
openclaw restart

Discord Bot

和 Telegram 類似,Token 是全域的,只要設定正確即可。

保留記憶與對話

記憶系統是最不能丟失的資料——它代表 AI 助理對你的了解[5]

# 安全備份記憶
sqlite3 ~/.openclaw/memory/embeddings.db ".backup 'memory-backup.db'"

# 搬遷後驗證
openclaw memory search "important topic"
sqlite3 ~/.openclaw/memory/embeddings.db "SELECT COUNT(*) FROM memories;"

備份策略建議

個人使用者: 每日自動備份,保留 14 份,本地 + 一份雲端,GPG 加密。

團隊/多使用者: 每 6 小時備份,保留 30 份,本地 + S3/B2 + 異地副本,自動驗證 + 告警。

使用 ClawTank 備份由平台自動處理並加密儲存。但定期匯出一份本地副本仍是好的實踐。

常見問題

備份太大: 通常是日誌佔空間,備份時 --exclude='logs'

Gateway Token 不匹配:openclaw config get gateway.token 確認,不一致則需重新配對。

跨版本還原: 版本不同可能有 schema 變更,執行 openclaw db migrate

總結

花 30 分鐘設定自動備份,可以在未來省下數小時的痛苦重建。行動清單:

  1. 立即: 做一次手動完整備份
  2. 今天: 設定 Cron 自動備份
  3. 本週: 設定雲端同步
  4. 定期: 測試還原流程

你的 AI 助理的記憶和經驗是不可替代的。保護好它們。

References

  1. SQLite Backup API Documentation
  2. 3-2-1 Backup Strategy Best Practices
  3. Backblaze B2 Cloud Storage Pricing
  4. WhatsApp Web Multi-Device Architecture
  5. OpenClaw Memory System Documentation
  6. rclone Cloud Storage Sync Documentation
  7. GPG Encryption Best Practices

準備好部署 OpenClaw 了嗎?

不需要 Docker、SSH、DevOps。不到 1 分鐘即可部署。

免費開始使用