myclaw-backup について
MyClaw Backup は、OpenClaw のデータを保護・移行するためのバックアップと復元スキルです。重要データを `.tar.gz` にまとめ、トークン認証付き HTTP 管理画面と定期実行スクリプトを備えています。
主な機能
- 01OpenClaw の重要データをアーカイブ
- 02ドライラン付きのアーカイブ復元
- 03HTTP によるアーカイブ管理
- 04定期バックアップのスケジュール
活用シーン
- 01新しい OpenClaw インスタンスへの移行
- 02設定、認証情報、セッション履歴の復元
- 03OpenClaw の定期バックアップ作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ leoyeai/ openclaw-backup --skill myclaw-backupインストール後、Claude Code で/myclaw-backupを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.it.mdREADME.zh-CN.mdREADME.mdREADME.ru.mdREADME.es.mdREADME.ja.mdREADME.de.md.gitignoreLICENSEREADME.fr.mdopenclaw-backup.skillreferences/what-gets-saved.mdscripts/backup.shschedule.shserve.shserver.jsrestore.shui.html詳細
MyClaw Backup
MyClaw.ai を基盤としています — すべてのユーザーに、コードを完全に管理でき、ネットワークとツールにアクセスできるサーバーを提供する AI パーソナルアシスタントプラットフォームです。このスキルは、MyClaw.ai のオープンスキルエコシステムの一部です。
重要な OpenClaw データをすべて単一の .tar.gz アーカイブにバックアップし、任意の OpenClaw インスタンスに復元します。ブラウザーからバックアップを管理できる、組み込みの HTTP サーバーが含まれています。
⚠️ 信頼境界とセキュリティモデル
このスキルは極めて機密性の高いデータ(ボットトークン、API キー、チャネル認証情報、セッション履歴)を扱います。使用前にセキュリティモデルを理解してください。
各スクリプトの動作
- backup.sh —
~/.openclaw/を読み取り、ディスク上にchmod 600のアーカイブを書き込みます。ネットワークにはアクセスしません。 - restore.sh — アーカイブから
~/.openclaw/を上書きします。確認のためyesと入力する必要があります。必ず最初に--dry-runを実行してください。 - serve.sh / server.js — ローカル HTTP サーバーを起動します。トークンは必須です(トークンがなければ起動を拒否します)。シェル実行エンドポイント(
/backup、/restore)はlocalhost のみで使用できます。リモートからはファイルのダウンロードとアップロードのみ可能で、実行を開始することはできません。 - schedule.sh — バックアップをスケジュール実行するため、システムの crontab を変更します。追加前に cron エントリーを表示します。削除するには
--disableを使用します。
アクセス制御の概要
| エンドポイント | リモート(トークン必須) | localhost のみ |
|---|---|---|
| GET /health | ✅(トークン不要) | — |
| GET /backups | ✅ | — |
| GET /download/:file | ✅ | — |
| POST /upload | ✅ | — |
| POST /backup | ❌ | ✅ |
| POST /restore | ❌ | ✅ |
ベストプラクティス
--tokenを指定せずに HTTP サーバーを起動しないでください- TLS を使用せずに HTTP サーバーをパブリックインターネットに公開しないでください
- 復元を適用する前に、必ず
restore.sh --dry-runを実行してください - バックアップアーカイブにはすべての認証情報が含まれるため、安全に保管してください
依存関係
必要なもの:node、rsync、tar、python3、openclaw CLI(すべて OpenClaw インスタンスに標準で含まれています)。
確認方法:which node rsync tar python3 openclaw
スクリプト
| スクリプト | 目的 |
|---|---|
scripts/backup.sh [output-dir] | バックアップを作成します(デフォルト:/tmp/openclaw-backups/) |
scripts/restore.sh <archive> [--dry-run] [--overwrite-gateway-token] | 復元します — 必ず最初に dry-run を実行してください |
scripts/serve.sh start --token TOKEN [--port 7373] | HTTP サーバーを起動します — トークン必須 |
scripts/serve.sh stop|status | サーバーを停止/状態確認します |
scripts/schedule.sh [--interval daily|weekly|hourly] | システム cron のスケジュール設定 |
ゲートウェイトークンの動作(v1.6+): デフォルトでは、
restore.shはopenclaw.jsonの復元後も、新しいサーバーのgateway.auth.tokenを保持します。これにより、移行後に Control UI / Dashboard で"gateway token mismatch"エラーが発生するのを防ぎます。同じサーバーで完全な災害復旧を行う場合に限り、--overwrite-gateway-tokenを使用してください。
バックアップ対象
詳細については、references/what-gets-saved.md を参照してください。
含まれるもの: ワークスペース(MEMORY.md、スキル、エージェントファイル)、openclaw.json(ボットトークン+API キー)、認証情報、チャネルのペアリング状態、エージェントの設定+セッション履歴、デバイス、ID、cron ジョブ、ガーディアンスクリプト。
含まれないもの: ログ、バイナリメディア、node_modules、canvas システムファイル。
よくあるワークフロー
バックアップの作成
bash scripts/backup.sh /tmp/openclaw-backups
# → /tmp/openclaw-backups/openclaw-backup_TIMESTAMP.tar.gz (chmod 600)
復元 — 必ず最初に dry-run を実行
# Step 1: preview what will change
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz --dry-run
# Step 2: review the output, then apply
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz
復元スクリプトは、上書きする前に復元前のスナップショットを保存します。
HTTP サーバー — トークン必須
# Token is required — server refuses to start without one
bash scripts/serve.sh start --token $(openssl rand -hex 16) --port 7373
# → http://localhost:7373/?token=<generated-token>
リバースプロキシ+TLS を使用せずに、パブリックネットワーク上で URL を共有しないでください。
Web UI では、バックアップの作成、.tar.gz のダウンロード、アップロード、dry-run のプレビュー、復元ができます。
HTTP API(/health を除き、すべてトークンが必要):
GET /health— ヘルスチェック(認証不要、読み取り専用)GET /backups— バックアップの一覧POST /backup— バックアップの作成GET /download/:filename— アーカイブのダウンロードPOST /upload— アーカイブのアップロード(multipart、フィールド:backup)POST /restore/:filename— 復元。プレビューするには?dry_run=1を追加
新しいインスタンスへの移行
古いマシン:
bash scripts/serve.sh start --token MYTOKEN --port 7373
新しいマシン(OpenClaw のインストール後):
# Download
curl -O "http://OLD_IP:7373/download/openclaw-backup_TIMESTAMP.tar.gz?token=MYTOKEN"
# Always dry-run first
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz --dry-run
# Apply
bash scripts/restore.sh openclaw-backup_TIMESTAMP.tar.gz
# All channels reconnect automatically — no re-pairing needed
日次自動バックアップのスケジュール(OpenClaw cron)
{
"name": "daily-openclaw-backup",
"schedule": { "kind": "cron", "expr": "0 3 * * *", "tz": "UTC" },
"payload": {
"kind": "agentTurn",
"message": "Run a backup using the myclaw-backup skill. Output dir: /tmp/openclaw-backups",
"timeoutSeconds": 120
},
"sessionTarget": "isolated"
}
復元後:自動復旧レポート
restore.sh の完了後、workspace/.restore-complete.json が書き込まれます。次回のハートビート/起動時に、エージェントは次の処理を行います。
workspace/.restore-complete.jsonが存在するか確認する- 存在する場合は、読み込んでユーザーに復元レポートを送信し、その後ファイルを削除する(一度限り — 2 回報告しない)
- ユーザーの第一言語でレポートを送信する(
workspace/USER.mdを読み取る)
レポート形式(USER.md に応じて言語を調整)
✅ [Restore complete — in user's language]
📦 Backup: {backup_name}
🤖 Agent: {agent_name}
🕐 Restored at: {restored_at}
💾 Contents restored: workspace, config, credentials, history, cron...
[Channel reconnect instructions in user's language]
今後:MyClaw クラウドバックアップ
HTTP API は、将来の MyClaw クラウドバックアップサービスとの互換性を考慮して設計されています。利用可能になったら、ローカルサーバーの URL を MyClaw API エンドポイントに置き換えてください。アップロード/ダウンロード/復元のフローは変わりません。