---
read_when:
    - برای وضعیت محلی OpenClaw، یک بایگانی پشتیبان درجه‌یک می‌خواهید
    - به یک اسنپ‌شات فشرده و تأییدشده از یک پایگاه داده SQLite متعلق به OpenClaw نیاز دارید
    - می‌خواهید پیش از بازنشانی یا حذف نصب، پیش‌نمایشی از مسیرهایی که شامل می‌شوند ببینید
summary: مرجع CLI برای `openclaw backup` (بایگانی‌ها و اسنپ‌شات‌های SQLite)
title: پشتیبان‌گیری
x-i18n:
    generated_at: "2026-07-27T15:17:05Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    prompt_version: 32
    provider: openai
    source_hash: dfb5a118545589b181cede26dab72e9d029d98a1cac5cfccedd9d9cf2c56d3b5
    source_path: cli/backup.md
    workflow: 16
---

# `openclaw backup`

یک بایگانی پشتیبان محلی برای وضعیت، پیکربندی، پروفایل‌های احراز هویت، اطلاعات محرمانه کانال/ارائه‌دهنده، نشست‌ها و در صورت تمایل فضاهای کاری OpenClaw ایجاد کنید.

```bash
openclaw backup create
openclaw backup create --output ~/Backups
openclaw backup create --dry-run --json
openclaw backup create --verify
openclaw backup create --no-include-workspace
openclaw backup create --only-config
openclaw backup verify ./2026-03-09T08-00-00.000+08-00-openclaw-backup.tar.gz
openclaw backup sqlite create --global --repository ~/Backups/openclaw-sqlite
openclaw backup sqlite create --agent main --repository ~/Backups/openclaw-sqlite
openclaw backup sqlite list --repository ~/Backups/openclaw-sqlite
openclaw backup sqlite verify ~/Backups/openclaw-sqlite/<snapshot-id>
openclaw backup sqlite verify ~/Backups/openclaw-sqlite/<snapshot-id> --scratch ~/Private/openclaw-scratch
openclaw backup sqlite restore ~/Backups/openclaw-sqlite/<snapshot-id> --target ./restored/openclaw.sqlite
```

## نکات

- بایگانی یک `manifest.json` را با مسیرهای مبدأ تفکیک‌شده و چیدمان بایگانی درون خود جای می‌دهد.
- خروجی پیش‌فرض یک بایگانی `.tar.gz` دارای مُهر زمانی در پوشه کاری فعلی است. نام فایل‌های دارای مُهر زمانی از منطقه زمانی محلی دستگاه شما استفاده می‌کنند و اختلاف با UTC را در بر می‌گیرند. اگر پوشه کاری فعلی داخل یکی از درخت‌های مبدأ پشتیبان‌گیری‌شده باشد، OpenClaw برای مکان پیش‌فرض بایگانی از پوشه خانگی شما استفاده می‌کند.
- فایل‌های بایگانی موجود هرگز بازنویسی نمی‌شوند. مسیرهای خروجی داخل درخت‌های وضعیت/فضای کاری مبدأ برای جلوگیری از گنجاندن خود بایگانی رد می‌شوند.
- `openclaw backup verify <archive>` بررسی می‌کند که بایگانی دقیقاً یک مانیفست ریشه داشته باشد، مسیرهای بایگانی با الگوی پیمایش مسیر و فایل‌های جانبی SQLite را رد می‌کند، وجود همه محتوای اعلام‌شده در مانیفست را تأیید می‌کند، شکل فایل هر اسنپ‌شات SQLite را اعتبارسنجی می‌کند و بررسی‌های کامل یکپارچگی و نقش را روی پایگاه‌های داده متعارف OpenClaw اجرا می‌کند. طرح‌واره‌های اختصاصی Plugin شفاف‌نشده باقی می‌مانند، زیرا ممکن است به قابلیت‌های SQLite تعریف‌شده توسط مالک نیاز داشته باشند. `openclaw backup create --verify` این اعتبارسنجی را بلافاصله پس از نوشتن بایگانی اجرا می‌کند.
- `openclaw backup create --only-config` فقط از فایل پیکربندی JSON فعال پشتیبان می‌گیرد.

## اسنپ‌شات‌های SQLite

هنگامی که به‌جای یک بایگانی گسترده وضعیت، به یک مصنوع قابل‌انتقال برای یکی از پایگاه‌های داده SQLite تحت مالکیت OpenClaw نیاز دارید، از `openclaw backup sqlite` استفاده کنید.

ایجاد اسنپ‌شات دقیقاً یک مبدأ نام‌گذاری‌شده را می‌پذیرد:

| فرمان                                                            | پایگاه داده                     |
| --------------------------------------------------------------- | ---------------------- |
| `openclaw backup sqlite create --global --repository <dir>`     | وضعیت مشترک OpenClaw  |
| `openclaw backup sqlite create --agent <id> --repository <dir>` | یک پایگاه داده برای هر عامل |

مخزن برای هر اسنپ‌شات ثبت‌شده یک پوشه دارد. هر پوشه اسنپ‌شات دقیقاً شامل موارد زیر است:

- `manifest.json`
- `database.sqlite`

ایجاد اسنپ‌شات پیش از خواندن پایگاه داده زنده، آن را تأیید می‌کند؛ با استفاده از API پشتیبان‌گیری آنلاین SQLite، وضعیت ثبت‌شده WAL را بدون باز نگه‌داشتن یک تراکنش خواندن طولانی ثبت می‌کند؛ پایگاه داده زنده را می‌بندد؛ نسخه خصوصی را با `VACUUM` فشرده می‌کند؛ پایگاه داده تولیدشده را دوباره تأیید می‌کند؛ و پوشه تکمیل‌شده را بدون بازنویسی مسیرهای موجود منتشر می‌کند. اسنپ‌شات‌های سراسری پیش از Compaction، ردیف‌های موقت صف تحویل را حذف می‌کنند تا محتوای حذف‌شده صف در صفحه‌های آزاد باقی نماند.

فایل‌های زنده `.sqlite`،‏ `-wal`،‏ `-shm` یا `-journal` را به‌عنوان مصنوع قابل‌انتقال کپی نکنید. فقط پوشه‌های اسنپ‌شات تکمیل‌شده را کپی کنید.

اسنپ‌شات‌های SQLite ممکن است شامل پروفایل‌های احراز هویت، وضعیت نشست، وضعیت Plugin و سایر رکوردهای حساس باشند. از مخزن‌ها با همان مجوزها، رمزنگاری، خط‌مشی نگهداری و محدودیت‌های مقصد پوشه وضعیت زنده OpenClaw محافظت کنید.

### تأیید و بازیابی

```bash
openclaw backup sqlite verify <snapshot-directory>
openclaw backup sqlite restore <snapshot-directory> --target <new-database-path>
```

تأیید، شکل سخت‌گیرانه مانیفست، اندازه مصنوع و SHA-256، یکپارچگی SQLite، کلیدهای خارجی، نسخه طرح‌واره، نقش و مالک پایگاه داده و تعریف نمایه‌های تحت مالکیت OpenClaw را بررسی می‌کند.

تأیید، یک نسخه خصوصی با محتوای تثبیت‌شده را اعتبارسنجی می‌کند تا رقابت‌های نام مسیر نتوانند بایت‌هایی را که SQLite بررسی می‌کند جایگزین کنند. به‌طور پیش‌فرض، آن نسخه موقت کنار مخزن اسنپ‌شات ایجاد و پیش از بازگشت فرمان حذف می‌شود. ریشه مرحله‌بندی و زنجیره اجداد آن باید مانع جایگزینی آن توسط کاربران دیگر شوند. ریشه‌های POSIX باید متعلق به کاربر فعلی باشند و برای گروه/همگان قابل‌نوشتن نباشند؛ اجداد چسبنده مانند `/tmp` برای فرزندان متعلق به کاربر پذیرفته می‌شوند. مجوزهای ACL در macOS که مرحله‌بندی را در معرض دسترسی قرار دهند یا قابل‌جایگزینی کنند، رد می‌شوند. ریشه‌ها و اجداد در Windows باید متعلق به کاربر فعلی یا یک هویت مورداعتماد سیستم‌عامل باشند و ACLهایی داشته باشند که دسترسی نامطمئن به مرحله‌بندی را منع کنند. برای یک اتصال فقط‌خواندنی یا اشتراک شبکه، `--scratch <existing-private-directory>` را روی فضای ذخیره‌سازی دارای کنترل‌های رمزنگاری و مقصد معادل ارائه کنید.

ایجاد اسنپ‌شات، پیش از مرحله‌بندی یا انتشار بایت‌های پایگاه داده، همان بررسی‌های مالک، ACL، اجداد و هویت مسیر را روی مخزن اعمال می‌کند.

بازیابی، تأیید را تکرار می‌کند و فقط در یک مقصد تازه می‌نویسد. مقصد موجود، فایل جانبی `-wal`،‏ `-shm` یا `-journal` را نمی‌پذیرد و هرگز پایگاه داده زنده OpenClaw را درجا جایگزین نمی‌کند. پوشه والد مقصد همان الزامات امنیت مسیر فضای موقت تأیید را دارد. فعال‌سازی یک پایگاه داده بازیابی‌شده همچنان یک مرحله آفلاین و صریح اپراتور است.

مخزن‌های اسنپ‌شات پوشه‌های محلی هستند. زمان‌بندی، بارگذاری، نگهداری، بسته‌های افزایشی WAL، جایگزینی هنگام خرابی و رفتار بازیابی هنگام راه‌اندازی عمداً خارج از محدوده این فرمان هستند.

## از چه چیزهایی پشتیبان گرفته می‌شود

`openclaw backup create` مبدأها را از نصب محلی OpenClaw شما برنامه‌ریزی می‌کند:

- پوشه وضعیت (معمولاً `~/.openclaw`)
- مسیر فایل پیکربندی فعال
- پوشه تفکیک‌شده `credentials/`، هنگامی که خارج از پوشه وضعیت وجود داشته باشد
- پوشه‌های فضای کاری کشف‌شده از پیکربندی فعلی، مگر اینکه `--no-include-workspace` را ارائه کنید

پروفایل‌های احراز هویت و سایر وضعیت‌های زمان اجرای هر عامل در SQLite زیر پوشه وضعیت (`agents/<agentId>/agent/openclaw-agent.sqlite`) قرار دارند؛ بنابراین ورودی پشتیبان وضعیت به‌طور خودکار آن‌ها را پوشش می‌دهد.

`--only-config` از کشف وضعیت، پوشه اطلاعات محرمانه و فضای کاری صرف‌نظر می‌کند و فقط مسیر فایل پیکربندی فعال را بایگانی می‌کند.

OpenClaw پیش از ساخت بایگانی مسیرها را متعارف می‌کند: اگر پیکربندی، پوشه اطلاعات محرمانه یا یک فضای کاری از قبل داخل پوشه وضعیت باشند، به‌عنوان مبدأهای جداگانه سطح بالای پشتیبان تکرار نمی‌شوند. مسیرهای ناموجود نادیده گرفته می‌شوند.

هنگام ایجاد بایگانی، OpenClaw پیش از آنکه `tar` مسیرها را بخواند، مسیرهای شناخته‌شده دارای تغییرات زنده را حذف می‌کند. این کار از رقابت میان اندازه ثبت‌شده فایل و نوشتن‌های هم‌زمان جلوگیری می‌کند. این فیلتر قواعد نسبی زیر را زیر هر پوشه وضعیت پشتیبان‌گیری‌شده اعمال می‌کند:

| محدوده نسبی به وضعیت                         | پسوندهای فایل نادیده‌گرفته‌شده         |
| -------------------------------------------- | ----------------------------- |
| `sessions/**`                                | `.jsonl`، `.log`              |
| `agents/<agentId>/sessions/**`               | `.jsonl`، `.log`              |
| `cron/runs/**`                               | `.jsonl`، `.log`              |
| `logs/**`                                    | `.jsonl`، `.log`              |
| `delivery-queue/**`                          | `.json`، `.delivered`، `.tmp` |
| `session-delivery-queue/**`                  | `.json`، `.delivered`، `.tmp` |
| هر مسیر زیر پوشه وضعیت پشتیبان‌گیری‌شده | `.sock`، `.pid`، `.tmp`       |

این قواعد فایل‌های فضای کاری خارج از پوشه وضعیت را فیلتر نمی‌کنند. همچنین فایل‌های کامل‌شده رونوشت و گزارش منطبق با جدول را حذف می‌کنند؛ بنابراین در صورت نیاز، آن رکوردها را جداگانه نگه دارید. مقدار `skippedVolatileCount` در نتیجه JSON تعداد فایل‌هایی را گزارش می‌کند که عمداً حذف شده‌اند.

پایگاه‌های داده SQLite زیر پوشه وضعیت با API پشتیبان‌گیری آنلاین SQLite ثبت و به‌صورت آفلاین با `VACUUM` فشرده می‌شوند تا بقایای صفحه‌های حذف‌شده وارد بایگانی نشوند و فایل‌های زنده WAL/SHM کپی نشوند. پایگاه داده تحت مالکیت Plugin که به قابلیت‌های SQLite تعریف‌شده توسط مالک و در دسترس‌نبوده نیاز دارد، به‌صورت بسته خطا می‌دهد و به کپی مستقیم فایل بازنمی‌گردد. فایل‌های SQLite که از طریق پشتیبان‌های فضای کاری گنجانده می‌شوند، مانند فایل‌های فضای کاری کپی می‌شوند و تضمین Compaction آن‌ها را پوشش نمی‌دهد.

فایل‌های مبدأ و مانیفست Pluginهای نصب‌شده زیر درخت `extensions/` پوشه وضعیت گنجانده می‌شوند، اما درخت‌های وابستگی تودرتوی `node_modules/` آن‌ها به‌عنوان مصنوعات نصب قابل‌بازسازی نادیده گرفته می‌شوند. پس از بازیابی یک بایگانی، اگر Plugin بازیابی‌شده وابستگی‌های مفقود را گزارش کرد، از `openclaw plugins update <id>` استفاده کنید یا با `openclaw plugins install <spec> --force` دوباره نصب کنید.

ریشه‌های زمان اجرای مدیریت‌شده توسط نصب‌کننده و قابل‌بازسازی زیر پوشه وضعیت نیز نادیده گرفته می‌شوند: `dev/`،‏ `git/`،‏ `npm/`،‏ `npm-runtime/` قدیمی و `tools/`. این‌ها به‌جای وضعیت معتبر کاربر، شامل تسویه‌حساب‌های مدیریت‌شده، درخت‌های بسته و زمان‌های اجرای بارگیری‌شده هستند؛ پس از بازیابی، زمان اجرا یا Plugin مربوطه را دوباره نصب یا به‌روزرسانی کنید. فایل پیکربندی، پوشه اطلاعات محرمانه یا فضای کاری که صریحاً داخل یکی از این ریشه‌ها پیکربندی شده باشد، همچنان گنجانده می‌شود.

## رفتار پیکربندی نامعتبر

`openclaw backup` پیش‌بررسی معمول پیکربندی را دور می‌زند تا همچنان بتواند هنگام بازیابی کمک کند. کشف فضای کاری به پیکربندی معتبر وابسته است؛ بنابراین وقتی فایل پیکربندی وجود دارد اما نامعتبر است و پشتیبان‌گیری از فضای کاری همچنان فعال است، `openclaw backup create` بی‌درنگ با خطا متوقف می‌شود.

برای پشتیبان‌گیری جزئی در چنین وضعیتی، دوباره با `--no-include-workspace` اجرا کنید: وضعیت، پیکربندی و پوشه خارجی اطلاعات محرمانه را در محدوده نگه می‌دارد و در عین حال از کشف فضای کاری کاملاً صرف‌نظر می‌کند.

`--only-config` نیز هنگامی که پیکربندی بدشکل است کار می‌کند، زیرا برای کشف فضای کاری پیکربندی را تجزیه نمی‌کند.

## اندازه و کارایی

OpenClaw حداکثر اندازه داخلی برای پشتیبان یا محدودیت اندازه هر فایل اعمال نمی‌کند. اگر نوشتن بایگانی به‌مدت پنج دقیقه هیچ داده‌ای تولید نکند، عملیات با خطا متوقف می‌شود و به‌جای آویزان‌ماندن نامحدود، فایل موقت ناقص خود را حذف می‌کند. در غیر این صورت، محدودیت‌های عملی از موارد زیر ناشی می‌شوند:

- فضای موجود برای نوشتن بایگانی موقت به‌علاوه بایگانی نهایی
- زمان لازم برای پیمایش درخت‌های بزرگ فضای کاری و فشرده‌سازی آن‌ها در یک `.tar.gz`
- زمان لازم برای اسکن مجدد بایگانی با `--verify` یا `openclaw backup verify`
- رفتار سیستم فایل مقصد: OpenClaw به انتشار با پیوند سختِ بدون بازنویسی نیاز دارد تا مسیر بایگانی نهایی هرگز نسخه در حال تکمیل را نمایش ندهد؛ سیستم‌های فایل پشتیبانی‌نشده با خطایی قابل‌اقدام متوقف می‌شوند

اگر تأیید دوام پوشه نهایی پس از انتشار ناموفق باشد، فرمان شکست را گزارش می‌کند، اما به‌جای خطر حذف یک جایگزین هم‌زمان، ورودی نهایی کامل را حفظ می‌کند.

فضاهای کاری بزرگ معمولاً عامل اصلی اندازه بایگانی هستند. برای پشتیبان کوچک‌تر/سریع‌تر از `--no-include-workspace` یا برای کوچک‌ترین بایگانی از `--only-config` استفاده کنید.

## مرتبط

- [مرجع CLI](/fa/cli)
