# پشتیبان‌گیری: عکس‌لحظه‌ای‌های رمزگذاری‌شده با zev backup

> پشتیبان رمزگذاری‌شده و بدون تکرار از پوشه‌ها، سرورها و پایگاه‌داده‌های Postgres با یک فرمان. در فضای Zaryn شما، هر سطل سازگار با S3 یا یک دیسک. فقط تغییرها فرستاده می‌شوند، هر بازگردانی بررسی می‌شود و زمان‌بندی خودش آن را اجرا می‌کند.

Source: https://zaryn.xyz/docs/fa/backups

`zev backup` از پوشه‌ها و پایگاه‌داده‌های شما عکس‌لحظه‌ای (snapshot) می‌گیرد و آن‌ها را رمزگذاری‌شده نگه می‌دارد. هر بار فقط چیزی را می‌فرستد که از دفعهٔ پیش عوض شده، و هر نسخه از هر فایل را برمی‌گرداند. روی لپ‌تاپ، رایانهٔ رومیزی و سرور کار می‌کند. پشتیبان می‌تواند به فضای Zaryn شما، به هر سطل سازگار با S3 یا به یک دیسک برود.

```diagram
type: flow
title: سه فرمان، بعد خودش اجرا می‌شود
---
شروع | zev backup init zaryn: یک سطل و یک کلید در حساب شما، و یک عبارت عبور که خودتان نگه می‌دارید | accent | 🔐
~ یک بار
انتخاب | zev backup add ~/Documents /etc --postgres shop | | 📁
~ یک بار
زمان‌بندی | zev backup schedule daily: هر شب ساعت ۰۳:۰۰ یک عکس‌لحظه‌ای | | ⏰
~ هر روز
بازگردانی | zev backup restore yesterday: هر فایل، هر روز، بررسی‌شده | | ↩
```

## شروع: zev backup init

یک بار با `zev login` وارد شوید. بعد:

```bash
zev backup init zaryn ~/Documents ~/Pictures
zev backup run
zev backup schedule daily
```

`init zaryn` در حساب شما یک کلید S3 و یک سطل می‌سازد و یک **عبارت عبور** می‌پرسد. کلید پشتیبان روی همین رایانه نگه داشته می‌شود، پس اجراهای زمان‌بندی‌شده به عبارت عبور نیاز ندارند. **عبارت عبور را یادداشت کنید.** تنها راه باز کردن پشتیبان از رایانه‌ای دیگر همین است، و هیچ‌کس نمی‌تواند آن را برایتان بازیابی کند، Zaryn هم نه.

یا جای دیگری:

```bash
zev backup init s3://s3.example.com/my-bucket/laptop    # هر S3: AWS_ACCESS_KEY_ID و AWS_SECRET_ACCESS_KEY را تنظیم کنید
zev backup init /mnt/usb-disk/backups                    # یک دیسک، یک پوشهٔ اشتراکی NAS، یک پوشهٔ متصل
```

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

```bash
zev backup add ~/Projects                  # یک پوشه
zev backup add --exclude node_modules      # یک نام، هر جا در زیرشاخه‌ها
zev backup add --exclude "*.iso"           # یک الگو
zev backup add --exclude ~/.cache          # یک مسیر و همهٔ زیرشاخه‌هایش
zev backup add --postgres shop             # یک پایگاه‌دادهٔ Postgres (نام یا نشانی postgresql://)
zev backup status                          # چه چیزهایی داخل است، زمان‌بندی، آخرین اجرا
```

بعضی پوشه‌ها هیچ‌وقت دادهٔ شما را ندارند: `/proc`، `/sys`، `/dev`، `/run`، `/tmp`، `/var/tmp` و `/var/cache`. zev همیشه از آن‌ها می‌گذرد، پس روی سرور می‌توانید از `/` پشتیبان بگیرید و نتیجهٔ معقولی بگیرید. سوکت‌ها و فایل‌های دستگاه هم کنار گذاشته می‌شوند.

## چرا فقط تغییرها فرستاده می‌شوند

هر فایل بر پایهٔ محتوایش تکه‌تکه می‌شود، نه بر پایهٔ جایگاه. نام هر تکه هشِ محتوای آن است، پس تکه‌ای که پیش‌تر ذخیره شده هرگز دوباره فرستاده نمی‌شود. این میان فایل‌ها، میان عکس‌لحظه‌ای‌ها و میان رایانه‌هایی که یک پشتیبان مشترک دارند هم کار می‌کند.

```diagram
type: flow
title: یک بایت از یک عکس ۱۲ مگابایتی عوض شده
---
خواندن | فایل همان‌جایی بریده می‌شود که محتوایش می‌گوید (هر تکه حدود ۱ مگابایت) | | ✂
~
نام‌گذاری | هر تکه یک نام BLAKE3 کلیددار می‌گیرد | | #
~ ۱۱ تکه از ۱۲ تا از پیش هست
فرستادن | فقط تکهٔ عوض‌شده، مهروموم‌شده و بسته‌بندی‌شده | accent | ↑
~
عکس‌لحظه‌ای | فهرست تازه‌ای از تکه‌ها: کل عکس، همان‌طور که حالا هست | | 📸
```

فایلی که اندازه و زمان تغییرش عوض نشده، اصلاً دوباره خوانده نمی‌شود؛ پس اجرای شبانه کمی بیشتر از زمانِ فهرست کردن پوشه‌ها طول می‌کشد.

```diagram
type: stats
title: در آزمون سرتاسری
---
17.5 MB | نخستین عکس‌لحظه‌ای (فایل‌ها و یک پایگاه‌داده) | همه‌اش تازه است | | accent
< 1 MB | عکس‌لحظه‌ای دوم، بی هیچ تغییر | فهرست فایل‌ها و کمی از خروجی پایگاه‌داده | |
~1 MB | یک بایت عوض‌شده در فایلی ۱۲ مگابایتی | یک تکه، نه کل فایل | |
0 B | همان عکس از رایانه‌ای دیگر | از پیش آنجاست | |
```

## Zaryn چه می‌بیند: هیچ

همه‌چیز پیش از ترک رایانهٔ شما رمزگذاری می‌شود: محتوای فایل‌ها، نام فایل‌ها، چیدمان پوشه‌ها، اندازه‌ها، خروجی پایگاه‌داده. آنچه به سرور می‌رسد بسته‌های مهروموم‌شدهٔ حدوداً ۱۶ مگابایتی با نام‌هایی تصادفی‌نماست.

- **مهروموم‌شده.** هر تکه اگر به‌صرفه باشد با zstd فشرده می‌شود و بعد با AES-256-GCM مهروموم می‌شود.
- **نام‌گذاری با کلید.** نام هر تکه هش BLAKE3 با کلید خودِ پشتیبان شماست، پس سرور نمی‌تواند فایلی را از روی نامش بشناسد.
- **بررسی در راه برگشت.** هنگام بازگردانی هر تکه باز و با نامش سنجیده می‌شود. تکهٔ عوض‌شده یا جابه‌جاشده رد می‌شود و هرگز در فایل‌های شما نوشته نمی‌شود.
- **عبارت عبور شما کلید را باز می‌کند.** کلید پشتیبان در سطل، مهروموم‌شده با عبارت عبور شما (Argon2id)، نگه داشته می‌شود. بدون عبارت عبور یا نسخهٔ این رایانه از کلید، پشتیبان باز نمی‌شود.

## بازگردانی

`<when>` می‌تواند `latest`، `yesterday`، `"3 days ago"`، `12h`، یک تاریخ مثل `2026-10-27`، یک لحظه مثل `"2026-10-27 14:00"` یا شناسهٔ یک عکس‌لحظه‌ای باشد. zev تازه‌ترین عکس‌لحظه‌ای همان لحظه یا پیش از آن را برمی‌دارد.

```bash
zev backup list                                    # همهٔ عکس‌لحظه‌ای‌ها: کی، کدام رایانه، چقدر تازه بود
zev backup files yesterday ~/Documents             # یک عکس‌لحظه‌ای چه دارد
zev backup restore latest --to ~/restored          # همه‌چیز، در یک پوشه
zev backup restore "3 days ago" ~/Documents/thesis.docx --to /tmp/old
zev backup restore yesterday ~/Pictures --in-place # برگرداندن به همان جای قبلی
```

فایل‌های بازگردانده با مجوزها، زمان تغییر و پیوندهایشان برمی‌گردند. اگر با root اجرا کنید، مالکشان هم برمی‌گردد.

**پایگاه‌دادهٔ Postgres** با `pg_dump` در قالب custom پشتیبان گرفته می‌شود. این خروجی حتی وقتی پایگاه‌داده در حال کار است یکدست است، و فشرده‌نشده می‌ماند تا پایگاه‌داده‌ای که کمی عوض شده بیشتر تکه‌هایش را با دیروز شریک باشد.

```bash
zev backup restore latest postgres:shop --into-postgres shop      # مستقیم به Postgres
zev backup restore latest postgres:shop --to /tmp/r               # یا به‌صورت فایل .dump برای pg_restore
```

## نگه‌داشتن و فراموش کردن

پشتیبان تازه برای هر رایانه **۷ روزانه، ۴ هفتگی و ۱۲ ماهانه** نگه می‌دارد، و همیشه تازه‌ترین را. پس از هر اجرا، عکس‌لحظه‌ای‌هایی که این سیاست نگه نمی‌دارد فراموش می‌شوند. فضایی که هیچ عکس‌لحظه‌ای باقی‌مانده‌ای به آن نیاز ندارد آزاد می‌شود.

```bash
zev backup keep --daily 14 --weekly 8 --monthly 24 --yearly 5
zev backup forget --dry-run     # چه چیزی می‌رود و چقدر آزاد می‌شود
zev backup keep off             # همه‌چیز نگه داشته شود
```

```diagram
type: cards
title: «۷ روزانه، ۴ هفتگی، ۱۲ ماهانه» چه نگه می‌دارد
---
📸 | تازه‌ترین | همیشه، هر چه سیاست بگوید | accent
📅 | ۷ روز گذشته | آخرین عکس‌لحظه‌ای هر روز |
🗓 | ۴ هفتهٔ گذشته | آخرین عکس‌لحظه‌ای هر هفته |
🗂 | ۱۲ ماه گذشته | آخرین عکس‌لحظه‌ای هر ماه | good
```

آزاد کردن فضا با احتیاط انجام می‌شود. بسته‌های تازه و فهرست تازه پیش از پاک شدن هر چیزی نوشته می‌شوند، پس فراموش کردنی که نیمه‌کاره بماند هم پشتیبانی بازگرداندنی باقی می‌گذارد. تا وقتی روی رایانهٔ دیگری پشتیبان‌گیری در جریان است، فراموش کردن صبر می‌کند.

## قفلش کنید: zev backup protect

```bash
zev backup protect --days 30     # هر شیء قفل می‌شود: حتی همین رایانه نمی‌تواند پاکش کند
```

باج‌افزاری که رایانه را می‌گیرد کلید S3 پشتیبان را هم دارد. با `protect`، هر شیئی که پشتیبان به آن نیاز دارد ۳۰ روز قفل می‌شود و تا وقتی لازم است تمدید می‌شود، پس آن کلید نمی‌تواند چیزی از آن را پاک یا بازنویسی کند. در Zaryn سطل زبالهٔ سطل از همان `init` روشن است، و کم کردن محافظت ۳ روز صبر می‌کند و برایتان ایمیل می‌فرستد. ببینید [محافظت در برابر باج‌افزار](/docs/fa/ransomware-protection).

## با زمان‌بندی

```bash
zev backup schedule daily     # هر شب ساعت ۰۳:۰۰
zev backup schedule 01:30     # هر روز ساعت ۰۱:۳۰
zev backup schedule hourly    # هر ساعت (و آن‌وقت ۲۴ عکس‌لحظه‌ای ساعتی هم نگه داشته می‌شود)
zev backup schedule off
zev backup schedule daily --print   # ببینید چه چیزی نصب می‌شود
```

در لینوکس این یک تایمر systemd است (تایمر کاربر، یا تایمر سیستم با `sudo`). در مک یک عامل launchd است و در ویندوز یک کار در Task Scheduler. اجرایی که هنگام خاموش بودن رایانه جا مانده، در روشن شدن بعدی انجام می‌شود. پشتیبان‌گیری با اولویت پایین اجرا می‌شود تا کار شما را کند نکند.

## رایانهٔ دوم، یا رایانه‌ای که گم شده

روی رایانهٔ تازه:

```bash
AWS_ACCESS_KEY_ID=ZK... AWS_SECRET_ACCESS_KEY=... zev backup connect s3://s3.zaryn.xyz/zev-backup-1a2b3c4d
zev backup list
zev backup restore latest --from old-laptop --to ~/restored
```

`connect` عبارت عبور را می‌پرسد. `zev backup status` روی رایانهٔ نخست نشانی پشتیبان را نشان می‌دهد، و در صفحهٔ ذخیره‌سازی می‌توانید [کلید بسازید](/storage#s3). `latest` یعنی تازه‌ترین عکس‌لحظه‌ای همین رایانه؛ `--from <computer>` عکس‌لحظه‌ای رایانهٔ دیگری را برمی‌دارد.

رایانه‌هایی که یک پشتیبان مشترک دارند تکه‌هایشان را هم شریک‌اند. دو لپ‌تاپ با یک کتابخانهٔ عکس، آن را یک بار ذخیره می‌کنند.

## بررسی

```bash
zev backup check               # تکه‌های همهٔ عکس‌لحظه‌ای‌ها سر جایشان هستند
zev backup check --read-data   # همه‌چیز را دانلود کن، هر تکه را باز کن و بسنج
zev backup check --repair      # بسته‌ها را از روی فهرست خودشان دوباره نمایه کن (پس از اجرای نیمه‌کاره)
```

پشتیبانی که هرگز از آن بازنگردانده‌اید یک امید است، نه پشتیبان. هر از گاهی یک پوشه را در `/tmp` بازگردانید و نگاهش کنید.

## چگونه حساب می‌شود

در Zaryn، پشتیبان همان [ذخیره‌سازی S3](/docs/fa/s3-storage) معمولی است و روی [طرح ذخیره‌سازی](/storage#plans) شما حساب می‌شود. فقط چیزی حساب می‌شود که پس از حذف تکرار ذخیره شده. نخستین عکس‌لحظه‌ای حدوداً به اندازهٔ فشردهٔ فایل‌هایتان است. پس از آن، هر عکس‌لحظه‌ای فقط به اندازهٔ تغییرها.

مرتبط: [ذخیره‌سازی سازگار با S3](/docs/fa/s3-storage)، [ذخیره و اشتراک فایل](/docs/fa/storing-files)، [ذخیره‌سازی راستی‌آزمایی‌شده](/docs/fa/verified-storage).
