'\" t
.\" Title: snbk
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 2026-01-16
.\" Manual: Filesystem Snapshot Management
.\" Source: 0.13.1
.\" Language: Persian
.\"
.TH "SNBK" "8" "2026\-01\-16" "0\&.13\&.1" "Filesystem Snapshot Management"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "نام (NAME)"
snbk \- برنامه خط فرمانی برای پشتیبانگیری از اسنپشاتهای snapper
.SH "خلاصه دستور (SYNOPSIS)"
.HP \w'\fBsnbk\fR\ 'u
\fBsnbk\fR [\fI\-\-global\-opts\fR] \fIcommand\fR [\fIcommand\-arguments\fR]
.HP \w'\fBsnbk\fR\ 'u
\fBsnbk\fR {\-\-help}
.SH "شرح (DESCRIPTION)"
.PP
برنامه \fBsnbk\fR یک برنامه خط فرمانی برای پشتیبانگیری از اسنپشاتهای snapper است\&. این برنامه میتواند اسنپشاتهای پشتیبان را روی فایلسیستمهای محلی و دوردست btrfs منتقل و حذف کند\&.
.SH "مفاهیم (CONCEPTS)"
.SS "پیکربندیهای پشتیبانگیری (Backup Configurations)"
.PP
به ازای هر پیکربندی snapper میتواند چندین پیکربندی پشتیبانگیری وجود داشته باشد\&. هر پیکربندی پشتیبانگیری، پشتیبانهای اسنپشاتهای snapper را در یک مکان، محلی یا دوردست تعریف میکند؛ برای تنظیمات ممکن
\fBsnapper-backup-configs\fR(5)
را ببینید\&.
.SS "وضعیتهای اسنپشات (Snapshot Statuses)"
.PP
هر اسنپشات دارای وضعیتی در مبدا و مقصد است\&. مقادیر ممکن برای مبدا عبارتند از:
.PP
(empty)
.RS 4
اسنپشات موجود نیست و بنابراین در مقصد منسوخ در نظر گرفته میشود\&. این اسنپشات با دستور delete بعدی در مقصد حذف خواهد شد\&.
.RE
.PP
read\-only
.RS 4
اسنپشات فقطخواندنی است\&.
.RE
.PP
read\-write
.RS 4
اسنپشات خواندنی\-نوشتنی است و بنابراین نمیتوان از آن پشتیبان گرفت\&.
.RE
.PP
مقادیر ممکن برای مقصد عبارتند از:
.PP
(empty)
.RS 4
اسنپشات موجود نیست\&. اگر اسنپشات مبدا فقطخواندنی باشد، با دستور transfer بعدی به مقصد منتقل خواهد شد\&.
.RE
.PP
valid
.RS 4
اسنپشات معتبر است\&. این موضوع نشان میدهد که فقطخواندنی است\&.
.RE
.PP
invalid
.RS 4
اسنپشات نامعتبر است\&. یا UUID دریافتی اشتباه است یا خواندنی\-نوشتنی است\&. این وضعیت در صورت قطع شدن فرایند انتقال رخ میدهد\&. دستور transfer بعدی تلاش خواهد کرد اسنپشات را دوباره منتقل کند\&.
.RE
.PP
legacy
.RS 4
اسنپشات معتبر است، اما متادیتای اسنپشات مبدا از زمان انتقال تغییر کرده است\&. دستور transfer بعدی متادیتای اسنپشات را در مقصد بهروزرسانی خواهد کرد\&.
.RE
.SS "بصریسازی (Visualization)"
.PP
برنامه \fBsnbk\fR دستور
\fIvisualize\fR
را برای تولید گرافها در قالب DOT ابزار Graphviz به منظور بصریسازی فراهم میکند\&. در حال حاضر، تولید نمودارهای درختی برای اسنپشاتها در هر دو سمت مبدا و مقصد پشتیبانی میشود\&. خروجی دستور را میتوان به ابزارهای Graphviz هدایت (pipe) کرد تا یک تصویر تولید شود\&.
.PP
در اینجا نمونهای از تولید نمودار درختی برای اسنپشاتها در سمت مبدا با پیکربندی پشتیبانگیری \(aqroot\(aq آورده شده است:
.sp
.if n \{\
.RS 4
.\}
.nf
# snbk \-b root visualize source\-tree | dot \-T png \-o root\-source\-tree\&.png
.fi
.if n \{\
.RE
.\}
.PP
در نمودار درختی برای اسنپشاتها، یک گره دارای ویژگیهای
\fIvirtual\fR
و
\fIvalid\fR
است\&. یک گره مجازی (virtual) به این معنی است که زیرحجم (subvolume) متناظر Btrfs توسط یک اسنپشات Snapper مدیریت نمیشود\&. یک گره معتبر (valid) یعنی گره در هر دو سمت مبدا و مقصد وجود دارد، و میتواند به عنوان والد ارسال (send parent) معتبر Btrfs جهت کاهش فضای مصرفی دیسک در طول انتقال یا بازگردانی اسنپشات استفاده شود\&. گره ریشه نمودار یک گره مجازی تخصصی است که زیرحجم Btrfs نیست و نشاندهنده فایلسیستم Btrfs در مبدا یا مقصد است\&.
.SH "گزینههای عمومی (GLOBAL OPTIONS)"
.PP
\fB\-q, \-\-quiet\fR
.RS 4
پنهان کردن خروجی عادی\&. پیامهای خطا با این حال چاپ خواهند شد\&.
.RE
.PP
\fB\-v, \-\-verbose\fR
.RS 4
افزایش پرگویی (جزئیات خروجی)\&.
.RE
.PP
\fB\-\-debug\fR
.RS 4
فعالسازی اشکالزدایی\&.
.RE
.PP
\fB\-\-utc\fR
.RS 4
نمایش تاریخها و زمانها در قالب UTC\&. بهطور پیشفرض، از زمان محلی استفاده میشود\&.
.RE
.PP
\fB\-\-iso\fR
.RS 4
نمایش تاریخها و زمانها در قالب ISO\&. قالب ISO همیشه برای خروجیهای ماشینخوانده استفاده میشود\&.
.RE
.PP
\fB\-t, \-\-table\-style \fR\fB\fIstyle\fR\fR
.RS 4
سبک جدول را مشخص میکند\&. سبک جدول با یک عدد صحیح مشخص میشود\&.
.RE
.PP
\fB\-\-machine\-readable \fR\fB\fIformat\fR\fR
.RS 4
یک قالب خروجی ماشینخوانده را مشخص میکند\&. گزینههای ممکن csv و json هستند\&.
.RE
.PP
\fB\-\-csvout\fR
.RS 4
قالب خروجی CSV را تنظیم میکند\&. برای برخی دستورات، خروجی CSV شامل اطلاعات بیشتری نسبت به خروجی پیشفرض جدول است\&. برای جزئیات
\m[blue]\fBRFC 4180\fR\m[]\&\s-2\u[1]\d\s+2
را ببینید، با این تفاوت که سطرها با LF پایان مییابند نه CR+LF\&.
.RE
.PP
\fB\-\-jsonout\fR
.RS 4
قالب خروجی JSON را تنظیم میکند\&. برای برخی دستورات، خروجی JSON شامل اطلاعات بیشتری نسبت به خروجی پیشفرض جدول است\&.
.RE
.PP
\fB\-\-separator \fR\fB\fIcharacter\fR\fR
.RS 4
کاراکتر جداکننده را برای قالب خروجی CSV مشخص میکند\&.
.RE
.PP
\fB\-\-no\-headers\fR
.RS 4
حذف سرایندها برای قالب خروجی CSV\&.
.RE
.PP
\fB\-b, \-\-backup\-config \fR\fB\fIname\fR\fR
.RS 4
استفاده از پیکربندی مشخصشده به جای تمام پیکربندیها\&.
.RE
.PP
\fB\-\-no\-dbus\fR
.RS 4
کار بدون اتصال DBus\&.
.sp
با احتیاط استفاده شود\&.
.RE
.PP
\fB\-\-target\-mode \fR\fB\fIname\fR\fR
.RS 4
تنها عمل روی پیکربندیهای پشتیبانگیری با حالت مقصد مشخصشده\&.
.RE
.PP
\fB\-\-automatic\fR
.RS 4
تنها عمل روی پیکربندیهای پشتیبانگیری که فلگ automatic در آنها تنظیم شده است\&.
.RE
.PP
\fB\-\-version\fR
.RS 4
چاپ نسخه و خروج\&.
.RE
.SH "دستورات (COMMANDS)"
.PP
برنامه \fBsnbk\fR تعدادی
\fIدستور\fR
ارائه میدهد\&. هر دستور گزینههای فهرستشده در بخش
«گزینههای عمومی (GLOBAL OPTIONS)»
را میپذیرد\&. این گزینهها باید
\fIقبل از\fR
نام دستور مشخص شوند\&. علاوه بر این، بسیاری از دستورات آرگومانهای ویژهای دارند که در این بخش فهرست شدهاند\&. این آرگومانهای اختصاصی دستور باید
\fIبعد از\fR
نام دستور مشخص شوند\&.
.PP
\fBhelp\fR
.RS 4
نمایش متن راهنمای کوتاه\&.
.RE
.PP
\fBlist\-configs\fR
.RS 4
فهرست کردن پیکربندیهای موجود\&.
.RE
.PP
\fBlist (ls)\fR
.RS 4
فهرست کردن اسنپشاتها\&.
.RE
.PP
\fBtransfer [\fR\fB\fInumber\fR\fR\fB]\fR
.RS 4
انتقال تمام اسنپشاتهای مفقود یا اسنپشات مشخصشده به مقصد\&.
.RE
.PP
\fBrestore [\fR\fB\fInumber\fR\fR\fB]\fR
.RS 4
بازگردانی تمام اسنپشاتهای مفقود یا اسنپشات مشخصشده به مبدا\&. برای اجرای این دستور باید یک پیکربندی پشتیبانگیری مشخص شود\&. راهاندازی مجدد سرویس `snapperd` لازم است تا اسنپشاتهای بازگرداندهشده بلافاصله نمایان شوند\&.
.RE
.PP
\fBdelete (remove|rm) [\fR\fB\fInumber\fR\fR\fB]\fR
.RS 4
حذف تمام اسنپشاتهای منسوخ یا اسنپشات مشخصشده از مقصد\&.
.RE
.PP
\fBtransfer\-and\-delete\fR
.RS 4
ترکیب transfer و delete\&.
.RE
.PP
\fBvisualize [options] \fR\fB\fImode\fR\fR
.RS 4
تولید گراف Graphviz با
\fImode\fR
مشخصشده\&. برای جزئیات بیشتر بخش
«بصریسازی (Visualization)»
را ببینید\&.
.PP
\fB\-r, \-\-rankdir\fR \fIrankdir\fR
.RS 4
مشخصه نمودار \(aqrankdir\(aq در Graphviz\&. پیشفرض \(aqLR\(aq است\&.
.RE
.PP
\fBsource\-tree\fR
.RS 4
تولید نمودار درختی از اسنپشاتها در مبدا\&.
.RE
.PP
\fBtarget\-tree\fR
.RS 4
تولید نمودار درختی از اسنپشاتها در مقصد\&.
.RE
.RE
.SH "بازگردانی (RESTORE)"
.PP
اسنپشاتها را میتوان با استفاده از دستور restore بازگرداند\&. روشهای بیشتری نیز برای انجام بازگردانی وجود دارد؛ برای نمونه میتوان نسخه پشتیبان را سوار (mount) کرده و سپس کپی نمود یا از rsync استفاده کرد\&.
.PP
در اینجا مثالی درباره نحوه استفاده دستی از btrfs send و receive برای بازگردانی یک اسنپشات در سیستم مبدا ارائه میشود\&. بهطور کلی استفاده از btrfs send و receive کمی پیچیده است\&.
.PP
هنگام استفاده از target\-mode local:
.sp
.if n \{\
.RS 4
.\}
.nf
# mkdir /.snapshots/42
# cp /backups/root/42/info.xml /.snapshots/42/
# btrfs send /backups/root/42/snapshot | btrfs receive /.snapshots/42
.fi
.if n \{\
.RE
.\}
.sp
هنگام استفاده از target\-mode ssh\-push:
.sp
.if n \{\
.RS 4
.\}
.nf
# mkdir /.snapshots/42
# scp backups.example.com:/backups/eberich/root/42/info.xml /.snapshots/42
# ssh backups.example.com btrfs send /backups/eberich/root/42/snapshot | btrfs receive /.snapshots/42
.fi
.if n \{\
.RE
.\}
.PP
اگر سیستم مجدداً نصب شده باشد، متأسفانه معمولاً نمیتوان بهسادگی از اسنپشات بازگرداندهشده به عنوان اسنپشات پیشفرض جدید استفاده کرد، چرا که برخی فایلها، مانند /etc/fstab، احتمالاً نیاز به تغییر دارند\&. همچنین متأسفانه برای زیرحجمهایی غیر از root قابلیت عقبگرد (rollback) پشتیبانی نمیشود\&.
.PP
اگر برای سرعت بخشیدن به عملیات اسنپشاتهایی در مبدا وجود داشته باشد، میتوانید از گزینه \-p برای btrfs send نیز استفاده کنید\&.
.SH "نکات (NOTES)"
.PP
محتوای اسنپشاتهای منتقلشده نباید در سیستم مبدا تغییر داده شود\&. معمولاً از آنجا که اسنپشاتها فقطخواندنی هستند از این بابت اطمینان حاصل میشود\&. اما تغییر اسنپشاتها به حالت خواندنی\-نوشتنی امکانپذیر است\&. این کار میتواند در آینده در طول انتقالها باعث بروز خطا شود\&.
.SH "دسترسیها (PERMISSIONS)"
.PP
از آنجا که target\-mode ssh\-push به مجوزهای ریشه (root) در مقصد نیاز دارد، توصیه میشود از یک ماشین یا کانتینر اختصاصی به عنوان مقصد استفاده شود\&.
.SH "فایلها (FILES)"
.PP
/etc/snapper/backup\-configs
.RS 4
دایرکتوری حاوی فایلهای پیکربندی\&.
.RE
.SH "وضعیت خروج (EXIT STATUS)"
.PP
در حالت عادی وضعیت خروج 0 است\&. در صورت بروز خطا وضعیت خروج 1 خواهد بود\&.
.SH "صفحه خانگی (HOMEPAGE)"
.PP
\m[blue]\fBhttp://snapper\&.io\fR\m[]
.SH "نویسندگان (AUTHORS)"
.PP
Arvin Schnell
.SH "همچنین ببینید (SEE ALSO)"
.PP
\fBsnapper-backup-configs\fR(5),
\fBsnapper\fR(8),
\fBbtrfs-send\fR(8),
\fBbtrfs-receive\fR(8)
\fBrsync\fR(1),
\fBsshfs\fR(1)
.SH "پینوشتها (NOTES)"
.IP " 1." 4
RFC 4180
.RS 4
\%https://tools.ietf.org/html/rfc4180
.RE