'\" 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