'\" t .\" Title: snapper .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 2026-01-02 .\" Manual: Filesystem Snapshot Management .\" Source: 0.13.1 .\" Language: Persian .\" .TH "SNAPPER" "8" "2026\-01\-02" "0\&.13\&.1" "مدیریت اسنپ‌شات سیستم‌فایل" .\" ----------------------------------------------------------------- .\" * 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)" snapper \- برنامه خط فرمان برای مدیریت اسنپ‌شات‌های سیستم‌فایل .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\fBsnapper\fR\ 'u \fBsnapper\fR [\fI\-\-global\-opts\fR] \fIcommand\fR [\fI\-\-command\-opts\fR] [\fIcommand\-arguments\fR] .HP \w'\fBsnapper\fR\ 'u \fBsnapper\fR {\-\-help} .SH "توضیحات (DESCRIPTION)" .PP برنامه .B snapper یک ابزار خط فرمان برای مدیریت اسنپ‌شات‌های سیستم‌فایل است\&. این ابزار می‌تواند اسنپ‌شات‌ها را ایجاد، حذف و مقایسه کرده و تغییرات ایجادشده بین اسنپ‌شات‌ها را واگردانی کند\&. .PP ابزار .B snapper هرگز محتوای اسنپ‌شات‌ها را تغییر نمی‌دهد\&. بنابراین در صورت پشتیبانی هسته، .B snapper اسنپ‌شات‌های فقط‌خواندنی (read\-only) ایجاد می‌کند\&. سیستم‌فایل‌های پشتیبانی‌شده عبارتند از .B btrfs و .B ext4 (متوقف‌شده) و همچنین اسنپ‌شات‌های حجم‌های منطقی LVM با قابلیت thin\-provisioning\&. بسته به نوع نصب شما ممکن است برخی سیستم‌فایل‌ها پشتیبانی نشوند\&. .SH "مفاهیم (CONCEPTS)" .SS "پیکربندی‌ها (Configurations)" .PP برای هر سیستم‌فایل یا زیرحجم (subvolume) که باید توسط .B snapper از آن اسنپ‌شات گرفته شود، یک فایل پیکربندی لازم است؛ ببینید \fBsnapper-configs\fR(5)\&. راه‌اندازی می‌تواند با دستور .B create\-config انجام شود\&. .SS "اسنپ‌شات‌ها (Snapshots)" .PP ابزار .B snapper سه نوع اسنپ‌شات را از هم متمایز می‌کند\&. .PP pre .RS 4 اسنپ‌شات‌های .B pre باید همیشه یک اسنپ‌شات .B post متناظر داشته باشند\&. هدف از جفت‌های اسنپ‌شات pre/post، ثبت تصویر لحظه‌ای از سیستم‌فایل قبل و بعد از یک تغییر است\&. .RE .PP post .RS 4 به نوع .B pre مراجعه کنید\&. .RE .PP single .RS 4 این اسنپ‌شات‌ها هیچ رابطه خاصی با سایر اسنپ‌شات‌ها ندارند\&. .RE .PP توجه داشته باشید که از نظر سیستم‌فایل، هر سه نوع یکسان هستند\&. .SS "توضیحات و داده‌های کاربری اسنپ‌شات (Snapshot Description and Userdata)" .PP با هر اسنپ‌شات می‌توان یک توضیح (description) و مقداری داده کاربری (userdata) مرتبط کرد\&. توضیح یک رشته متنی است\&. داده کاربری فهرستی از جفت‌های کلید\-مقدار است که در آن کلیدها و مقادیر رشته هستند\&. .PP از نویسه‌های غیر ASCII برای توضیحات اسنپ‌شات، داده کاربری یا هر رشته دیگری استفاده نکنید، مگر اینکه همیشه از کدگذاری نویسه UTF\-8 استفاده کنید\&. .SS "ایجاد خودکار اسنپ‌شات (Automatic Snapshot Creation)" .PP علاوه بر ایجاد دستی اسنپ‌شات، اسنپ‌شات‌ها می‌توانند به صورت خودکار نیز ایجاد شوند\&. .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} یک کرون‌جاب (cronjob) یا تایمر systemd، در صورتی که TIMELINE_CREATE برای یک پیکربندی فعال باشد، اسنپ‌شات‌های ساعتی ایجاد می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} برنامه‌های خاصی مانند YaST و zypper هنگام اعمال تغییرات در سیستم، جفت اسنپ‌شات‌های pre/post ایجاد می‌کنند\&. .RE .SS "الگوریتم‌های پاکسازی (Cleanup Algorithms)" .PP ابزار .B snapper چندین الگوریتم برای پاکسازی اسنپ‌شات‌های قدیمی ارائه می‌دهد\&. این الگوریتم‌ها در یک کرون‌جاب ساعتی یا تایمر systemd اجرا می‌شوند\&. این مورد می‌تواند در فایل‌های پیکربندی مربوطه همراه با پارامترهای هر الگوریتم تنظیم شود\&. .PP number .RS 4 اسنپ‌شات‌های قدیمی را هنگامی که تعداد اسنپ‌شات‌ها به حد مشخصی برسد حذف می‌کند\&. .RE .PP timeline .RS 4 اسنپ‌شات‌های قدیمی را حذف می‌کند اما تعدادی اسنپ‌شات ساعتی، روزانه، هفتگی، ماهانه، فصلی و سالانه را نگه می‌دارد\&. .RE .PP empty\-pre\-post .RS 4 جفت اسنپ‌شات‌های pre/post با تغییرات خالی (empty diffs) را حذف می‌کند\&. .RE .PP الگوریتم‌های پاکسازی .B number و .B timeline همچنین می‌توانند تلاش کنند فضای اشغال‌شده توسط اسنپ‌شات‌ها را زیر یک حد معین و فضای خالی سیستم‌فایل را بالاتر از یک حد معین نگه دارند\&. برای شرط اول، سهمیه (quota) باید راه‌اندازی شود؛ دستور .B setup\-quota را ببینید\&. علاوه بر این، متغیرهای NUMBER_LIMIT و TIMELINE_LIMIT در فایل پیکربندی باید بازه داشته باشند (مقدار کمینه و بیشینه)\&. سپس الگوریتم‌ها دو مرحله پیمایش انجام می‌دهند: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} حذف اسنپ‌شات‌های بالاتر از مقدار بیشینه، بدون توجه به فضای اسنپ‌شات و سیستم‌فایل\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} حذف اسنپ‌شات‌های بالاتر از مقدار کمینه تا زمانی که محدودیت‌های مربوط به اسنپ‌شات و سیستم‌فایل برآورده شوند\&. .RE .PP حد فضای استفاده‌شده را می‌توان از طریق متغیر SPACE_LIMIT پیکربندی کرد\&. نکته: هنگام محاسبه فضای اشغال‌شده توسط اسنپ‌شات‌ها، تنها اسنپ‌شات‌هایی که الگوریتم پاکسازی برای آن‌ها تنظیم شده است در نظر گرفته می‌شوند\&. .PP حد فضای خالی را می‌توان از طریق متغیر FREE_LIMIT پیکربندی کرد\&. .PP نکته: از آنجا که پاکسازی به‌صورت ناهمگام نسبت به ایجاد اسنپ‌شات‌ها انجام می‌شود، اسنپ‌شات‌های مشاهده‌شده ممکن است با اسنپ‌شات‌های مورد انتظار بر اساس محدودیت‌ها متفاوت باشند\&. همچنین در btrfs ممکن است qgroupهای منسوخ به‌طور موقت وجود داشته باشند\&. .SS "فیلترها (Filters)" .PP برخی فایل‌ها اطلاعات وضعیت سیستم را نگه می‌دارند، مانند /etc/mtab\&. چنین فایل‌هایی هرگز نباید واگردانی شوند\&. برای کمک به کاربران، .B snapper امکان نادیده گرفتن این فایل‌ها را فراهم می‌کند\&. .PP فیلترها از فایل‌های /etc/snapper/filters/*\&.txt و /usr/share/snapper/filters/*\&.txt خوانده می‌شوند، که برای فایل‌های هم‌نام، مسیر اول اولویت دارد\&. هر خط در این فایل‌ها یک الگو را مشخص می‌کند\&. هنگامی که .B snapper تفاوت بین دو اسنپ‌شات را محاسبه می‌کند، با استفاده از \fBfnmatch\fR(3) همراه با پرچم FNM_LEADING_DIR، تمام فایل‌ها و دایرکتوری‌های منطبق با هر یک از این الگوها را نادیده می‌گیرد\&. .PP توجه داشته باشید که فیلترها مانع اسنپ‌شات گرفتن از فایل‌ها یا دایرکتوری‌ها نمی‌شوند\&. برای این منظور از subvolumeها یا نقاط اتصال (mount points) استفاده کنید\&. .SH "گزینه‌های عمومی (GLOBAL OPTIONS)" .PP \fB\-q, \-\-quiet\fR .RS 4 خاموش کردن خروجی معمولی\&. با این حال پیام‌های خطا همچنان چاپ خواهند شد\&. .RE .PP \fB\-v, \-\-verbose\fR .RS 4 افزایش پرگویی خروجی و نمایش جزئیات بیشتر\&. .RE .PP \fB\-\-logger\-type \fR\fB\fItype\fR\fR .RS 4 تنظیم نوع ثبت‌کننده وقایع (logger)\&. مقادیر ممکن عبارتند از none، stdout، logfile و syslog\&. .RE .PP \fB\-\-debug\fR .RS 4 فعال‌سازی اشکال‌زدایی (debugging)\&. .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\-\-abbreviate\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\&. برای جزئیات به \m[blue]\fBRFC 4180\fR\m[]\&\s-2\u[1]\d\s+2 مراجعه کنید، با این تفاوت که سطرها با LF پایان می‌یابند، نه CR+LF\&. .RE .PP \fB\-\-jsonout\fR .RS 4 تنظیم قالب خروجی 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\-c, \-\-config \fR\fB\fIname\fR\fR .RS 4 استفاده از پیکربندی مشخص‌شده به‌جای پیکربندی پیش‌فرض\&. پیکربندی پیش‌فرض "root" نام دارد\&. .RE .PP \fB\-\-no\-dbus\fR .RS 4 کار بدون اتصال DBus\&. .sp با احتیاط استفاده کنید چرا که یک daemon در حال اجرای snapperd از تغییرات اعمال‌شده در سیستم مطلع نخواهد شد\&. .RE .PP \fB\-r, \-\-root \fR\fB\fIpath\fR\fR .RS 4 عملیات بر روی ریشه هدف\&. فقط همراه با no\-dbus و فقط برای برخی دستورات کار می‌کند\&. .RE .PP \fB\-a, \-\-ambit \fR\fB\fIambit\fR\fR .RS 4 عملیات در حوزه (ambit) مشخص‌شده\&. می‌تواند برای نادیده گرفتن تشخیص خودکار حوزه استفاده شود\&. حوزه‌های مجاز عبارتند از auto، classic و transactional\&. .RE .PP \fB\-\-version\fR .RS 4 چاپ نگارش و خروج\&. .RE .SH "دستورات (COMMANDS)" .PP ابزار .B snapper تعدادی \fIcommand\fR ارائه می‌دهد\&. هر دستور گزینه‌های فهرست‌شده در بخش GLOBAL OPTIONS را می‌پذیرد\&. این گزینه‌ها باید \fIقبل\fR از نام دستور مشخص شوند\&. علاوه بر این، بسیاری از دستورات دارای گزینه‌های خاصی هستند که در این بخش فهرست شده‌اند\&. این گزینه‌های اختصاصی دستور باید \fIبعد\fR از نام دستور و \fIقبل\fR از هر یک از آرگومان‌های دستور مشخص شوند\&. .PP \fBhelp\fR .RS 4 نمایش متن راهنمای کوتاه\&. .RE .PP \fBlist\-configs [options]\fR .RS 4 فهرست کردن پیکربندی‌های موجود\&. .PP \fB\-\-columns\fR \fIcolumns\fR .RS 4 انتخاب ستون‌ها برای نمایش با جداکننده کاما\&. .sp ستون‌های ممکن عبارتند از: config، subvolume\&. .RE .RE .PP \fBcreate\-config [options] \fR\fB\fIsubvolume\fR\fR .RS 4 ایجاد یک پیکربندی جدید برای یک سیستم‌فایل یا زیرحجم (subvolume)\&. برای این دستور احتمالاً به گزینه عمومی \fB\-\-config\fR نیاز خواهید داشت، بخش‌های GLOBAL OPTIONS و CONCEPTS را ببینید\&. .PP \fB\-f, \-\-fstype\fR \fIfstype\fR .RS 4 تنظیم دستی نوع سیستم‌فایل\&. مقادیر پشتیبانی‌شده عبارتند از btrfs، ext4 (منسوخ‌شده) و lvm\&. برای lvm، ابزار snapper از اسنپ‌شات‌های thin\-provisioned در LVM استفاده می‌کند\&. نوع سیستم‌فایل روی LVM باید در پرانتز ارائه شود، مانند lvm(xfs)\&. .sp بدون این گزینه snapper تلاش می‌کند سیستم‌فایل را شناسایی کند\&. .RE .PP \fB\-t, \-\-template\fR \fIname\fR .RS 4 نام قالب برای فایل پیکربندی جدید\&. .RE .RE .PP \fBdelete\-config\fR .RS 4 حذف یک پیکربندی برای یک سیستم‌فایل یا زیرحجم به همراه تمام اسنپ‌شات‌های آن\&. برای این دستور احتمالاً به گزینه عمومی \fB\-\-config\fR نیاز خواهید داشت، بخش‌های GLOBAL OPTIONS و CONCEPTS را ببینید\&. .RE .PP \fBget\-config [options]\fR .RS 4 نمایش تنظیمات پیکربندی\&. .PP \fB\-\-columns\fR \fIcolumns\fR .RS 4 انتخاب ستون‌ها برای نمایش با جداکننده کاما\&. .sp ستون‌های ممکن عبارتند از: key، value\&. .sp وقتی قالب JSON استفاده شود ستون‌ها انتخاب نمی‌شوند\&. .RE .RE .PP \fBset\-config\fR \fIconfigdata\fR .RS 4 تغییر تنظیمات پیکربندی\&. تنظیمات \fIconfigdata\fR فهرستی از جفت‌های کلید\-مقدار جداشده با فاصله هستند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند "NUMBER_CLEANUP=yes NUMBER_LIMIT=10"\&. مقدار SUBVOLUME و FSTYPE قابل تغییر نیست\&. .RE .PP \fBlist (ls) [options]\fR .RS 4 فهرست کردن اسنپ‌شات‌ها\&. .PP \fB\-t, \-\-type\fR \fItype\fR .RS 4 انتخاب نوع اسنپ‌شات‌ها برای فهرست کردن\&. مقادیر ممکن عبارتند از all، single و pre\-post\&. .RE .PP \fB\-\-disable\-used\-space\fR .RS 4 غیرفعال کردن نمایش فضای استفاده‌شده\&. .sp محاسبه فضای استفاده‌شده به مقداری زمان نیاز دارد\&. بنابراین این گزینه می‌تواند سرعت نمایش فهرست را افزایش دهد\&. .RE .PP \fB\-a, \-\-all\-configs\fR .RS 4 فهرست کردن اسنپ‌شات‌ها از تمام پیکربندی‌های قابل دسترسی توسط کاربر\&. .RE .PP \fB\-\-columns\fR \fIcolumns\fR .RS 4 انتخاب ستون‌ها برای نمایش با جداکننده کاما\&. .sp ستون‌های ممکن عبارتند از: config، subvolume، number، default، active، date، user، used\-space، cleanup، description، userdata، pre\-number، post\-number، post\-date، read\-only\&. .RE .sp خروجی برای هر اسنپ‌شات شامل چندین ستون است\&. برخی از آن‌ها نیاز به توضیح دارند: .PP #, Pre # and Post # .RS 4 شماره اسنپ‌شات\&. .sp برای btrfs شماره می‌تواند با یک علامت همراه باشد\&. علامت "\-" نشان می‌دهد که اسنپ‌شات، اسنپ‌شاتِ در حال حاضر سوارشده (mounted) است و علامت "+" نشان می‌دهد که اسنپ‌شات دفعه بعد سوار خواهد شد (این زیرحجم پیش‌فرض btrfs است)\&. اگر هر دو شرط برقرار باشند علامت "*" نمایش داده می‌شود\&. .RE .PP Used Space .RS 4 برای btrfs فضای اختصاصی گروه سهمیه btrfs متناظر با اسنپ‌شات است\&. .sp اگر نمایش فضای استفاده‌شده در دسترس نباشد، مانند زمانی که quota در btrfs فعال نیست، به‌طور خودکار غیرفعال می‌شود\&. .RE .RE .PP \fBcreate [options]\fR .RS 4 ایجاد یک اسنپ‌شات جدید\&. .PP \fB\-t, \-\-type\fR \fItype\fR .RS 4 نوع اسنپ‌شات جدید را مشخص می‌کند\&. مقادیر ممکن عبارتند از single، pre و post\&. .RE .PP \fB\-\-pre\-number\fR \fInumber\fR .RS 4 برای اسنپ‌شات‌های post باید شماره اسنپ‌شات pre ارائه شود\&. .RE .PP \fB\-p, \-\-print\-number\fR .RS 4 چاپ شماره اسنپ‌شات ایجادشده\&. .RE .PP \fB\-d, \-\-description\fR \fIdescription\fR .RS 4 توضیح برای اسنپ‌شات\&. .RE .PP \fB\-c, \-\-cleanup\-algorithm\fR \fIcleanup\-algorithm\fR .RS 4 تنظیم الگوریتم پاکسازی برای اسنپ‌شات\&. .RE .PP \fB\-u, \-\-userdata\fR \fIuserdata\fR .RS 4 تنظیم داده کاربری برای اسنپ‌شات\&. جفت‌های کلید\-مقدار باید با کاما جدا شوند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند requestid=42,user=arthur\&. .RE .PP \fB\-\-command\fR \fIcommand\fR .RS 4 ایجاد یک اسنپ‌شات pre و post و اجرای دستور در میان آن‌ها\&. اگر snapper اصلاً نتواند دستور را اجرا کند، اسنپ‌شات post را نمی‌گیرد\&. اگر دستور با یک کد خروج غیرصفر خارج شود، snapper اسنپ‌شات post را می‌گیرد و با همان کد خروج خارج می‌شود\&. .RE .PP \fB\-\-read\-only\fR .RS 4 ایجاد اسنپ‌شات فقط‌خواندنی\&. این حالت پیش‌فرض است\&. .RE .PP \fB\-\-read\-write\fR .RS 4 ایجاد اسنپ‌شات خواندنی\-نوشتنی\&. .RE .PP \fB\-\-from\fR \fInumber\fR .RS 4 ایجاد یک اسنپ‌شات از روی اسنپ‌شات با شماره ارائه‌شده به‌جای اسنپ‌شات 0\&. .RE .PP \fB\-\-empty\fR .RS 4 ایجاد یک اسنپ‌شات خالی\&. فقط در btrfs و همراه با \-\-no\-dbus پشتیبانی می‌شود\&. .RE .RE .PP \fBmodify [options] \fR\fB\fInumber\fR\fR .RS 4 تغییر دادن یک اسنپ‌شات\&. .PP \fB\-d, \-\-description\fR \fIdescription\fR .RS 4 توضیح جدید برای اسنپ‌شات\&. .RE .PP \fB\-c, \-\-cleanup\-algorithm\fR \fIcleanup\-algorithm\fR .RS 4 تنظیم الگوریتم پاکسازی برای اسنپ‌شات\&. .RE .PP \fB\-u, \-\-userdata\fR \fIuserdata\fR .RS 4 تنظیم داده کاربری برای اسنپ‌شات\&. جفت‌های کلید\-مقدار باید با کاما جدا شوند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند requestid=42,user=arthur\&. .RE .PP \fB\-\-read\-only\fR .RS 4 تنظیم اسنپ‌شات به حالت فقط‌خواندنی\&. .RE .PP \fB\-\-read\-write\fR .RS 4 تنظیم اسنپ‌شات به حالت خواندنی\-نوشتنی\&. .RE .PP \fB\-\-default\fR .RS 4 تنظیم اسنپ‌شات به‌عنوان اسنپ‌شات پیش‌فرض\&. فقط برای btrfs\&. .RE .RE .PP \fBdelete (remove|rm) \fR\fB\fInumber\fR\fR\fB | \fR\fB\fInumber1\-number2\fR\fR .RS 4 حذف یک اسنپ‌شات یا بازه‌ای از اسنپ‌شات‌ها\&. .PP \fB\-s, \-\-sync\fR .RS 4 همگام‌سازی سیستم‌فایل پس از حذف اسنپ‌شات‌ها\&. جزئیات به نوع سیستم‌فایل بستگی دارد\&. .sp سامانه Btrfs معمولاً پس از حذف اسنپ‌شات‌ها فضا را به‌صورت ناهمگام آزاد می‌کند\&. با این گزینه snapper منتظر می‌ماند تا فضای قبلاً اشغال‌شده توسط اسنپ‌شات‌های حذف‌شده واقعاً دوباره در دسترس قرار گیرد\&. .RE .sp اسنپ‌شات 0 قابل حذف نیست\&. برای btrfs اسنپ‌شات فعلی سوارشده و اسنپ‌شاتی که دفعه بعد سوار خواهد شد (زیرحجم پیش‌فرض btrfs) نیز قابل حذف نیستند\&. .RE .PP \fBmount \fR\fB\fInumber\fR\fR .RS 4 سوار کردن (mount) یک اسنپ‌شات\&. برای همه انواع سیستم‌فایل لازم نیست\&. .RE .PP \fBumount \fR\fB\fInumber\fR\fR .RS 4 پیاده کردن (unmount) یک اسنپ‌شات\&. برای همه انواع سیستم‌فایل لازم نیست\&. .RE .PP \fBstatus [options] \fR\fB\fInumber1\fR\fR\fB\&.\&.\fR\fB\fInumber2\fR\fR .RS 4 مقایسه اسنپ‌شات‌های \fInumber1\fR و \fInumber2\fR\&. این دستور فهرستی از فایل‌ها و دایرکتوری‌هایی را نمایش می‌دهد که در بازه زمانی ایجاد این دو اسنپ‌شات ایجاد، ویرایش یا حذف شده‌اند\&. .PP \fB\-o, \-\-output\fR \fIfile\fR .RS 4 نوشتن خروجی در فایل \fIfile\fR\&. .RE .sp خروجی شامل یک رشته کدگذاری‌کننده وضعیت و به دنبال آن نام فایل است\&. نویسه‌های رشته وضعیت عبارتند از: .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} علامت "+" به این معنی است که فایل ایجاد شده است، علامت "\-" به این معنی است که فایل حذف شده است\&. علامت "c" به این معنی است که محتوای فایل تغییر کرده و "t" یعنی نوع فایل تغییر یافته است (مانند تبدیل از فایل عادی به دایرکتوری)\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} علامت "p" به این معنی است که مجوزها تغییر کرده‌اند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} علامت "u" به این معنی است که مالکیت کاربر تغییر کرده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} علامت "g" به این معنی است که مالکیت گروه تغییر کرده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} علامت "x" به این معنی است که اطلاعات صفت گسترش‌یافته (extended attribute) تغییر کرده است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} علامت "a" به این معنی است که اطلاعات ACL تغییر کرده است\&. .RE .sp اگر تغییری وجود نداشته باشد علامت "\&." خروجی داده می‌شود\&. .RE .PP \fBdiff [options] \fR\fB\fInumber1\fR\fR\fB\&.\&.\fR\fB\fInumber2\fR\fR\fB [files]\fR .RS 4 مقایسه اسنپ‌شات‌های \fInumber1\fR و \fInumber2\fR\&. این دستور تفاوت (diff) محتوای فایل‌ها و دایرکتوری‌هایی را که در بازه زمانی ایجاد این دو اسنپ‌شات ایجاد، ویرایش یا حذف شده‌اند، نمایش می‌دهد\&. .PP \fB\-i, \-\-input\fR \fIfile\fR .RS 4 خواندن فایل‌های مورد مقایسه از فایل \fIfile\fR\&. .RE .PP \fB\-\-diff\-cmd\fR \fIcommand\fR .RS 4 دستور مورد استفاده برای مقایسه فایل‌ها\&. مقدار پیش‌فرض /usr/bin/diff \-\-new\-file \-\-unified است\&. دو فایل برای مقایسه به‌عنوان پارامتر به دستور ارسال می‌شوند\&. .RE .PP \fB\-x, \-\-extensions\fR \fIoptions\fR .RS 4 گزینه‌های اضافی ارسالی به دستور diff\&. .RE .RE .PP \fBundochange [options] \fR\fB\fInumber1\fR\fR\fB\&.\&.\fR\fB\fInumber2\fR\fR\fB [files]\fR .RS 4 واگردانی تغییرات ایجادشده بین اسنپ‌شات \fInumber1\fR و \fInumber2\fR\&. .PP \fB\-i, \-\-input\fR \fIfile\fR .RS 4 خواندن فایل‌هایی که تغییرات آن‌ها باید واگردانی شود از فایل \fIfile\fR\&. .RE .RE .PP \fBrollback [options] [\fR\fB\fInumber\fR\fR\fB]\fR .RS 4 دو اسنپ‌شات جدید ایجاد می‌کند و زیرحجم پیش‌فرض را تنظیم می‌نماید\&. به‌طور پیش‌فرض سیستم از زیرحجم پیش‌فرض سیستم‌فایل ریشه بوت می‌شود\&. اقدامات دقیق به این بستگی دارد که یک شماره ارائه شده باشد یا خیر: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} بدون شماره، ابتدا یک اسنپ‌شات فقط‌خواندنی از زیرحجم پیش‌فرض ایجاد می‌شود\&. یک اسنپ‌شات خواندنی\-نوشتنی دوم از سیستم فعلی ایجاد می‌شود\&. سیستم تنظیم می‌شود تا از اسنپ‌شات دوم بوت شود\&. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} با یک شماره، ابتدا یک اسنپ‌شات فقط‌خواندنی از سیستم فعلی ایجاد می‌شود\&. یک اسنپ‌شات خواندنی\-نوشتنی دوم از \fInumber\fR ایجاد می‌شود\&. سیستم تنظیم می‌شود تا از اسنپ‌شات دوم بوت شود\&. .RE .sp دستور rollback فقط در btrfs پشتیبانی می‌شود و نیاز به سیستمی با پیکربندی مناسب دارد\&. .PP \fB\-p, \-\-print\-number\fR .RS 4 چاپ شماره دومین اسنپ‌شات ایجادشده\&. .RE .PP \fB\-d, \-\-description\fR \fIdescription\fR .RS 4 توضیح برای اسنپ‌شات\&. .RE .PP \fB\-c, \-\-cleanup\-algorithm\fR \fIcleanup\-algorithm\fR .RS 4 تنظیم الگوریتم پاکسازی برای اسنپ‌شات\&. .RE .PP \fB\-u, \-\-userdata\fR \fIuserdata\fR .RS 4 تنظیم داده کاربری برای اسنپ‌شات\&. جفت‌های کلید\-مقدار باید با کاما جدا شوند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند requestid=42,user=arthur\&. .RE .sp دستور rollback همچنین توضیحات، الگوریتم پاکسازی و برخی داده‌های کاربری را تنظیم می‌کند، مگر اینکه مقادیر در خط فرمان مشخص شده باشند\&. این کار پاکسازی اسنپ‌شات‌های ایجادشده توسط rollback را خودکار می‌کند\&. .sp در حوزه‌هایی غیر از classic، دستور rollback آنچه را که برای انجام واگردانی لازم است انجام می‌دهد\&. در هر حال توصیه می‌شود در آن شرایط از برنامه‌های اختصاصی استفاده شود\&. .RE .PP \fBsetup\-quota\fR .RS 4 راه‌اندازی سهمیه (quota)\&. در حال حاضر فقط در btrfs پشتیبانی می‌شود\&. .RE .PP \fBcleanup [options] \fR\fB\fIcleanup\-algorithm\fR\fR .RS 4 اجرای الگوریتم پاکسازی \fIcleanup\-algorithm\fR\&. الگوریتم‌های پاکسازی پیاده‌سازی‌شده در حال حاضر عبارتند از number، timeline و empty\-pre\-post\&. برای اجرای همه الگوریتم‌های پاکسازی، می‌توان all را به‌عنوان cleanup\-algorithm ارائه داد\&. .PP \fB\-\-path\fR \fIpath\fR .RS 4 پاکسازی تمام پیکربندی‌های موثر بر مسیر\&. فقط برای btrfs مفید است\&. .RE .PP \fB\-\-free\-space\fR \fIfree\-space\fR .RS 4 تلاش برای ایجاد فضای خالی در دسترس\&. فقط برای btrfs مفید است\&. .RE .RE .PP \fBxadiff \fR\fB\fInumber1\fR\fR\fB\&.\&.\fR\fB\fInumber2\fR\fR\fB [files]\fR .RS 4 مقایسه ویژگی‌های گسترش‌یافته بین اسنپ‌شات \fInumber1\fR و \fInumber2\fR\&. مثال‌های زیر را ببینید: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} +:user\&.foo برای صفت‌های ایجادشده .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \-:user\&.bar برای صفت‌های حذف‌شده .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \-+:security\&.selinux برای صفت‌های تغییریافته .RE .RE .SH "مجوزها (PERMISSIONS)" .PP کاربران غیر ریشه می‌توانند با تنظیم ALLOW_USERS یا ALLOW_GROUPS در فایل پیکربندی، اجازه استفاده از یک پیکربندی را پیدا کنند\&. برای اینکه تمام عملیات‌ها کار کنند، کاربر باید بتواند دایرکتوری \&.snapshots درون subvolume را بخواند و به آن دسترسی داشته باشد\&. دایرکتوری \&.snapshots باید متعلق به root باشد و نباید توسط هیچ کاربر دیگری قابل نوشتن باشد\&. .PP در اینجا چند روش برای دستیابی به این هدف آورده شده است: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} دایرکتوری را برای همه قابل دسترس کنید: .sp \fBchmod a+rx \&.snapshots\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} دایرکتوری را برای گروهی که کاربر عضو آن است قابل دسترس کنید، مانند: .sp \fBchown :users \&.snapshots\fR .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} با استفاده از ACL دایرکتوری را برای کاربر قابل دسترس کنید، مانند: .sp \fBsetfacl \-m u:tux:rx \&.snapshots\fR .RE .PP روش آخر می‌تواند توسط snapper انجام شود، تنظیم SYNC_ACL در \fBsnapper-configs\fR(5) را ببینید\&. .SH "پلاگین‌ها (PLUGINS)" .PP ابزار snapper می‌تواند اسکریپت‌های خارجی را پس از اقدامات خاصی اجرا کند\&. اسکریپت‌ها باید در /usr/lib/snapper/plugins قرار گیرند\&. نام باید با یک رقم شروع شود و ترتیب اجرا بر اساس حروف الفبا است\&. .PP آرگومان اول یک اسکریپت، اقدامی است که snapper اجرا کرده است\&. اقدامات زیر تعریف شده‌اند: .PP \fBcreate\-config\-pre \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR .RS 4 قبل از ایجاد یک پیکربندی جدید اجرا می‌شود .RE .PP \fBcreate\-config\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR .RS 4 بعد از ایجاد یک پیکربندی جدید اجرا می‌شود .RE .PP \fBdelete\-config\-pre \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR .RS 4 قبل از حذف یک پیکربندی اجرا می‌شود .RE .PP \fBdelete\-config\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR .RS 4 بعد از حذف یک پیکربندی اجرا می‌شود .RE .PP \fBcreate\-snapshot\-pre \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 قبل از ایجاد یک اسنپ‌شات جدید اجرا می‌شود .RE .PP \fBcreate\-snapshot\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 بعد از ایجاد یک اسنپ‌شات جدید اجرا می‌شود .RE .PP \fBmodify\-snapshot\-pre \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 قبل از تغییر یک اسنپ‌شات اجرا می‌شود .RE .PP \fBmodify\-snapshot\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 بعد از تغییر یک اسنپ‌شات اجرا می‌شود .RE .PP \fBdelete\-snapshot\-pre \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 قبل از حذف یک اسنپ‌شات اجرا می‌شود .RE .PP \fBdelete\-snapshot\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 بعد از حذف یک اسنپ‌شات اجرا می‌شود .RE .PP \fBset\-read\-only\-pre \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 قبل از فقط‌خواندنی یا خواندنی\-نوشتنی کردن اسنپ‌شات اجرا می‌شود .RE .PP \fBset\-read\-only\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 بعد از فقط‌خواندنی یا خواندنی\-نوشتنی کردن اسنپ‌شات اجرا می‌شود .RE .PP \fBset\-default\-snapshot\-pre \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 قبل از تغییر اسنپ‌شات پیش‌فرض اجرا می‌شود .RE .PP \fBset\-default\-snapshot\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIsnapshot\-number\fR\fR .RS 4 بعد از تغییر اسنپ‌شات پیش‌فرض اجرا می‌شود .RE .PP \fBrollback\-post \fR\fB\fIsubvolume\fR\fR\fB \fR\fB\fIfstype\fR\fR\fB \fR\fB\fIold\-snapshot\-number\fR\fR\fB \fR\fB\fInew\-snapshot\-number\fR\fR .RS 4 بعد از انجام یک rollback اجرا می‌شود .RE .PP اقدامات و آرگومان‌های بیشتری می‌توانند در هر زمان اضافه شوند\&. استفاده از snapper درون پلاگین‌ها مجاز نیست\&. .PP مشخص نیست که آیا پلاگین‌ها از طریق کلاینت (snapper) یا سرور (snapperd) فراخوانی می‌شوند\&. .SH "فایل‌ها (FILES)" .PP /etc/conf\&.d/snapper .RS 4 فایل پیکربندی سراسری\&. .RE .PP /etc/snapper/configs .RS 4 دایرکتوری حاوی فایل‌های پیکربندی\&. .RE .PP /etc/snapper/config\-templates .RS 4 دایرکتوری حاوی الگوهای پیکربندی\&. .RE .PP /usr/share/snapper/config\-templates .RS 4 دایرکتوری رزرو (fallback) حاوی الگوهای پیکربندی\&. .RE .PP /etc/snapper/filters/*\&.txt .RS 4 فایل‌های فیلتر\&. .RE .PP /usr/share/snapper/filters/*\&.txt .RS 4 فایل‌های فیلتر رزرو (fallback)\&. .RE .PP /var/log/snapper\&.log .RS 4 فایل وقایع (logfile)\&. لطفاً این فایل را در گزارش‌های اشکال بگنجانید\&. .RE .SH "وضعیت خروج (EXIT STATUS)" .PP به‌طور معمول وضعیت خروج 0 است\&. اگر خطایی رخ دهد وضعیت خروج 1 خواهد بود\&. همچنین اگر وضعیت خروج یک پلاگین 0 نباشد، خطا تلقی می‌شود\&. .SH "نکات (NOTES)" .PP هیچ سازوکاری برای تضمین سازگاری و یکپارچگی فایل‌ها در حین ایجاد اسنپ‌شات وجود ندارد\&. برای مثال فایل‌های یک پایگاه داده ممکن است در زمان اجرا و فعالیت پایگاه داده، ناسازگار باشند\&. .PP سازگاری پس از واگردانی تغییرات (undochange) تضمین نمی‌شود\&. برای مثال هنگامی که ایجاد یک کاربر واگردانی می‌شود، ممکن است فایل‌های آن کاربر همچنان باقی بمانند\&. .PP پشتیبانی از سیستم‌فایل‌های مجزا، rollback و صفت‌های گسترش‌یافته از گزینه‌های زمان کامپایل هستند و ممکن است در دسترس نباشند\&. .SH "صفحه خانگی (HOMEPAGE)" .PP \m[blue]\fBhttp://snapper\&.io\fR\m[] .SH "نویسندگان (AUTHORS)" .PP Arvin Schnell .SH "همچنین ببینید (SEE ALSO)" .PP \fBsnapper-configs\fR(5), \fBsnapper-zypp-plugin\fR(8), \fBsnbk\fR(8), \fBpam_snapper\fR(8), \fBbtrfs\fR(8), \fBlvm\fR(8), \fBattr\fR(5), \fBacl\fR(5) .SH "نکات (NOTES)" .IP " 1." 4 RFC 4180 .RS 4 \%https://tools.ietf.org/html/rfc4180 .RE