SNAPPER(8) مدیریت اسنپ‌شات سیستم‌فایل SNAPPER(8)

snapper - برنامه خط فرمان برای مدیریت اسنپ‌شات‌های سیستم‌فایل

snapper [--global-opts] command [--command-opts] [command-arguments]

snapper {--help}

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

ابزار snapper هرگز محتوای اسنپ‌شات‌ها را تغییر نمی‌دهد. بنابراین در صورت پشتیبانی هسته، snapper اسنپ‌شات‌های فقط‌خواندنی (read-only) ایجاد می‌کند. سیستم‌فایل‌های پشتیبانی‌شده عبارتند از btrfs و ext4 (متوقف‌شده) و همچنین اسنپ‌شات‌های حجم‌های منطقی LVM با قابلیت thin-provisioning. بسته به نوع نصب شما ممکن است برخی سیستم‌فایل‌ها پشتیبانی نشوند.

برای هر سیستم‌فایل یا زیرحجم (subvolume) که باید توسط snapper از آن اسنپ‌شات گرفته شود، یک فایل پیکربندی لازم است؛ ببینید snapper-configs(5). راه‌اندازی می‌تواند با دستور create-config انجام شود.

ابزار snapper سه نوع اسنپ‌شات را از هم متمایز می‌کند.

pre

اسنپ‌شات‌های pre باید همیشه یک اسنپ‌شات post متناظر داشته باشند. هدف از جفت‌های اسنپ‌شات pre/post، ثبت تصویر لحظه‌ای از سیستم‌فایل قبل و بعد از یک تغییر است.

post

به نوع pre مراجعه کنید.

single

این اسنپ‌شات‌ها هیچ رابطه خاصی با سایر اسنپ‌شات‌ها ندارند.

توجه داشته باشید که از نظر سیستم‌فایل، هر سه نوع یکسان هستند.

با هر اسنپ‌شات می‌توان یک توضیح (description) و مقداری داده کاربری (userdata) مرتبط کرد. توضیح یک رشته متنی است. داده کاربری فهرستی از جفت‌های کلید-مقدار است که در آن کلیدها و مقادیر رشته هستند.

از نویسه‌های غیر ASCII برای توضیحات اسنپ‌شات، داده کاربری یا هر رشته دیگری استفاده نکنید، مگر اینکه همیشه از کدگذاری نویسه UTF-8 استفاده کنید.

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

•یک کرون‌جاب (cronjob) یا تایمر systemd، در صورتی که TIMELINE_CREATE برای یک پیکربندی فعال باشد، اسنپ‌شات‌های ساعتی ایجاد می‌کند.
•برنامه‌های خاصی مانند YaST و zypper هنگام اعمال تغییرات در سیستم، جفت اسنپ‌شات‌های pre/post ایجاد می‌کنند.

ابزار snapper چندین الگوریتم برای پاکسازی اسنپ‌شات‌های قدیمی ارائه می‌دهد. این الگوریتم‌ها در یک کرون‌جاب ساعتی یا تایمر systemd اجرا می‌شوند. این مورد می‌تواند در فایل‌های پیکربندی مربوطه همراه با پارامترهای هر الگوریتم تنظیم شود.

number

اسنپ‌شات‌های قدیمی را هنگامی که تعداد اسنپ‌شات‌ها به حد مشخصی برسد حذف می‌کند.

timeline

اسنپ‌شات‌های قدیمی را حذف می‌کند اما تعدادی اسنپ‌شات ساعتی، روزانه، هفتگی، ماهانه، فصلی و سالانه را نگه می‌دارد.

empty-pre-post

جفت اسنپ‌شات‌های pre/post با تغییرات خالی (empty diffs) را حذف می‌کند.

الگوریتم‌های پاکسازی number و timeline همچنین می‌توانند تلاش کنند فضای اشغال‌شده توسط اسنپ‌شات‌ها را زیر یک حد معین و فضای خالی سیستم‌فایل را بالاتر از یک حد معین نگه دارند. برای شرط اول، سهمیه (quota) باید راه‌اندازی شود؛ دستور setup-quota را ببینید. علاوه بر این، متغیرهای NUMBER_LIMIT و TIMELINE_LIMIT در فایل پیکربندی باید بازه داشته باشند (مقدار کمینه و بیشینه). سپس الگوریتم‌ها دو مرحله پیمایش انجام می‌دهند:

1.حذف اسنپ‌شات‌های بالاتر از مقدار بیشینه، بدون توجه به فضای اسنپ‌شات و سیستم‌فایل.
2.حذف اسنپ‌شات‌های بالاتر از مقدار کمینه تا زمانی که محدودیت‌های مربوط به اسنپ‌شات و سیستم‌فایل برآورده شوند.

حد فضای استفاده‌شده را می‌توان از طریق متغیر SPACE_LIMIT پیکربندی کرد. نکته: هنگام محاسبه فضای اشغال‌شده توسط اسنپ‌شات‌ها، تنها اسنپ‌شات‌هایی که الگوریتم پاکسازی برای آن‌ها تنظیم شده است در نظر گرفته می‌شوند.

حد فضای خالی را می‌توان از طریق متغیر FREE_LIMIT پیکربندی کرد.

نکته: از آنجا که پاکسازی به‌صورت ناهمگام نسبت به ایجاد اسنپ‌شات‌ها انجام می‌شود، اسنپ‌شات‌های مشاهده‌شده ممکن است با اسنپ‌شات‌های مورد انتظار بر اساس محدودیت‌ها متفاوت باشند. همچنین در btrfs ممکن است qgroupهای منسوخ به‌طور موقت وجود داشته باشند.

برخی فایل‌ها اطلاعات وضعیت سیستم را نگه می‌دارند، مانند /etc/mtab. چنین فایل‌هایی هرگز نباید واگردانی شوند. برای کمک به کاربران، snapper امکان نادیده گرفتن این فایل‌ها را فراهم می‌کند.

فیلترها از فایل‌های /etc/snapper/filters/*.txt و /usr/share/snapper/filters/*.txt خوانده می‌شوند، که برای فایل‌های هم‌نام، مسیر اول اولویت دارد. هر خط در این فایل‌ها یک الگو را مشخص می‌کند. هنگامی که snapper تفاوت بین دو اسنپ‌شات را محاسبه می‌کند، با استفاده از fnmatch(3) همراه با پرچم FNM_LEADING_DIR، تمام فایل‌ها و دایرکتوری‌های منطبق با هر یک از این الگوها را نادیده می‌گیرد.

توجه داشته باشید که فیلترها مانع اسنپ‌شات گرفتن از فایل‌ها یا دایرکتوری‌ها نمی‌شوند. برای این منظور از subvolumeها یا نقاط اتصال (mount points) استفاده کنید.

-q, --quiet

خاموش کردن خروجی معمولی. با این حال پیام‌های خطا همچنان چاپ خواهند شد.

-v, --verbose

افزایش پرگویی خروجی و نمایش جزئیات بیشتر.

--logger-type type

تنظیم نوع ثبت‌کننده وقایع (logger). مقادیر ممکن عبارتند از none، stdout، logfile و syslog.

--debug

فعال‌سازی اشکال‌زدایی (debugging).

--utc

نمایش تاریخ‌ها و زمان‌ها بر اساس UTC. به‌طور پیش‌فرض از زمان محلی استفاده می‌شود.

--iso

نمایش تاریخ‌ها و زمان‌ها در قالب ISO. قالب ISO همیشه برای خروجی‌های ماشین‌خوان استفاده می‌شود.

-t, --table-style style

مشخص کردن سبک جدول. سبک جدول با یک عدد صحیح مشخص می‌شود.

--abbreviate

تلاش برای کوتاه‌سازی متن در برخی ستون‌ها به طوری که جداول در عرض صفحه نمایش جا شوند.

--machine-readable format

مشخص کردن یک قالب خروجی ماشین‌خوان. گزینه‌های ممکن csv و json هستند.

--csvout

تنظیم قالب خروجی CSV. برای جزئیات به RFC 4180[1] مراجعه کنید، با این تفاوت که سطرها با LF پایان می‌یابند، نه CR+LF.

--jsonout

تنظیم قالب خروجی JSON.

--separator character

مشخص کردن نویسه جداکننده برای قالب خروجی CSV.

--no-headers

حذف سرآیندها برای قالب خروجی CSV.

-c, --config name

استفاده از پیکربندی مشخص‌شده به‌جای پیکربندی پیش‌فرض. پیکربندی پیش‌فرض "root" نام دارد.

--no-dbus

کار بدون اتصال DBus.

با احتیاط استفاده کنید چرا که یک daemon در حال اجرای snapperd از تغییرات اعمال‌شده در سیستم مطلع نخواهد شد.

-r, --root path

عملیات بر روی ریشه هدف. فقط همراه با no-dbus و فقط برای برخی دستورات کار می‌کند.

-a, --ambit ambit

عملیات در حوزه (ambit) مشخص‌شده. می‌تواند برای نادیده گرفتن تشخیص خودکار حوزه استفاده شود. حوزه‌های مجاز عبارتند از auto، classic و transactional.

--version

چاپ نگارش و خروج.

ابزار snapper تعدادی command ارائه می‌دهد. هر دستور گزینه‌های فهرست‌شده در بخش GLOBAL OPTIONS را می‌پذیرد. این گزینه‌ها باید قبل از نام دستور مشخص شوند. علاوه بر این، بسیاری از دستورات دارای گزینه‌های خاصی هستند که در این بخش فهرست شده‌اند. این گزینه‌های اختصاصی دستور باید بعد از نام دستور و قبل از هر یک از آرگومان‌های دستور مشخص شوند.

help

نمایش متن راهنمای کوتاه.

list-configs [options]

فهرست کردن پیکربندی‌های موجود.

--columns columns

انتخاب ستون‌ها برای نمایش با جداکننده کاما.

ستون‌های ممکن عبارتند از: config، subvolume.

create-config [options] subvolume

ایجاد یک پیکربندی جدید برای یک سیستم‌فایل یا زیرحجم (subvolume). برای این دستور احتمالاً به گزینه عمومی --config نیاز خواهید داشت، بخش‌های GLOBAL OPTIONS و CONCEPTS را ببینید.

-f, --fstype fstype

تنظیم دستی نوع سیستم‌فایل. مقادیر پشتیبانی‌شده عبارتند از btrfs، ext4 (منسوخ‌شده) و lvm. برای lvm، ابزار snapper از اسنپ‌شات‌های thin-provisioned در LVM استفاده می‌کند. نوع سیستم‌فایل روی LVM باید در پرانتز ارائه شود، مانند lvm(xfs).

بدون این گزینه snapper تلاش می‌کند سیستم‌فایل را شناسایی کند.

-t, --template name

نام قالب برای فایل پیکربندی جدید.

delete-config

حذف یک پیکربندی برای یک سیستم‌فایل یا زیرحجم به همراه تمام اسنپ‌شات‌های آن. برای این دستور احتمالاً به گزینه عمومی --config نیاز خواهید داشت، بخش‌های GLOBAL OPTIONS و CONCEPTS را ببینید.

get-config [options]

نمایش تنظیمات پیکربندی.

--columns columns

انتخاب ستون‌ها برای نمایش با جداکننده کاما.

ستون‌های ممکن عبارتند از: key، value.

وقتی قالب JSON استفاده شود ستون‌ها انتخاب نمی‌شوند.

set-config configdata

تغییر تنظیمات پیکربندی. تنظیمات configdata فهرستی از جفت‌های کلید-مقدار جداشده با فاصله هستند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند "NUMBER_CLEANUP=yes NUMBER_LIMIT=10". مقدار SUBVOLUME و FSTYPE قابل تغییر نیست.

list (ls) [options]

فهرست کردن اسنپ‌شات‌ها.

-t, --type type

انتخاب نوع اسنپ‌شات‌ها برای فهرست کردن. مقادیر ممکن عبارتند از all، single و pre-post.

--disable-used-space

غیرفعال کردن نمایش فضای استفاده‌شده.

محاسبه فضای استفاده‌شده به مقداری زمان نیاز دارد. بنابراین این گزینه می‌تواند سرعت نمایش فهرست را افزایش دهد.

-a, --all-configs

فهرست کردن اسنپ‌شات‌ها از تمام پیکربندی‌های قابل دسترسی توسط کاربر.

--columns columns

انتخاب ستون‌ها برای نمایش با جداکننده کاما.

ستون‌های ممکن عبارتند از: config، subvolume، number، default، active، date، user، used-space، cleanup، description، userdata، pre-number، post-number، post-date، read-only.

خروجی برای هر اسنپ‌شات شامل چندین ستون است. برخی از آن‌ها نیاز به توضیح دارند:

#, Pre # and Post #

شماره اسنپ‌شات.

برای btrfs شماره می‌تواند با یک علامت همراه باشد. علامت "-" نشان می‌دهد که اسنپ‌شات، اسنپ‌شاتِ در حال حاضر سوارشده (mounted) است و علامت "+" نشان می‌دهد که اسنپ‌شات دفعه بعد سوار خواهد شد (این زیرحجم پیش‌فرض btrfs است). اگر هر دو شرط برقرار باشند علامت "*" نمایش داده می‌شود.

Used Space

برای btrfs فضای اختصاصی گروه سهمیه btrfs متناظر با اسنپ‌شات است.

اگر نمایش فضای استفاده‌شده در دسترس نباشد، مانند زمانی که quota در btrfs فعال نیست، به‌طور خودکار غیرفعال می‌شود.

create [options]

ایجاد یک اسنپ‌شات جدید.

-t, --type type

نوع اسنپ‌شات جدید را مشخص می‌کند. مقادیر ممکن عبارتند از single، pre و post.

--pre-number number

برای اسنپ‌شات‌های post باید شماره اسنپ‌شات pre ارائه شود.

-p, --print-number

چاپ شماره اسنپ‌شات ایجادشده.

-d, --description description

توضیح برای اسنپ‌شات.

-c, --cleanup-algorithm cleanup-algorithm

تنظیم الگوریتم پاکسازی برای اسنپ‌شات.

-u, --userdata userdata

تنظیم داده کاربری برای اسنپ‌شات. جفت‌های کلید-مقدار باید با کاما جدا شوند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند requestid=42,user=arthur.

--command command

ایجاد یک اسنپ‌شات pre و post و اجرای دستور در میان آن‌ها. اگر snapper اصلاً نتواند دستور را اجرا کند، اسنپ‌شات post را نمی‌گیرد. اگر دستور با یک کد خروج غیرصفر خارج شود، snapper اسنپ‌شات post را می‌گیرد و با همان کد خروج خارج می‌شود.

--read-only

ایجاد اسنپ‌شات فقط‌خواندنی. این حالت پیش‌فرض است.

--read-write

ایجاد اسنپ‌شات خواندنی-نوشتنی.

--from number

ایجاد یک اسنپ‌شات از روی اسنپ‌شات با شماره ارائه‌شده به‌جای اسنپ‌شات 0.

--empty

ایجاد یک اسنپ‌شات خالی. فقط در btrfs و همراه با --no-dbus پشتیبانی می‌شود.

modify [options] number

تغییر دادن یک اسنپ‌شات.

-d, --description description

توضیح جدید برای اسنپ‌شات.

-c, --cleanup-algorithm cleanup-algorithm

تنظیم الگوریتم پاکسازی برای اسنپ‌شات.

-u, --userdata userdata

تنظیم داده کاربری برای اسنپ‌شات. جفت‌های کلید-مقدار باید با کاما جدا شوند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند requestid=42,user=arthur.

--read-only

تنظیم اسنپ‌شات به حالت فقط‌خواندنی.

--read-write

تنظیم اسنپ‌شات به حالت خواندنی-نوشتنی.

--default

تنظیم اسنپ‌شات به‌عنوان اسنپ‌شات پیش‌فرض. فقط برای btrfs.

delete (remove|rm) number | number1-number2

حذف یک اسنپ‌شات یا بازه‌ای از اسنپ‌شات‌ها.

-s, --sync

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

سامانه Btrfs معمولاً پس از حذف اسنپ‌شات‌ها فضا را به‌صورت ناهمگام آزاد می‌کند. با این گزینه snapper منتظر می‌ماند تا فضای قبلاً اشغال‌شده توسط اسنپ‌شات‌های حذف‌شده واقعاً دوباره در دسترس قرار گیرد.

اسنپ‌شات 0 قابل حذف نیست. برای btrfs اسنپ‌شات فعلی سوارشده و اسنپ‌شاتی که دفعه بعد سوار خواهد شد (زیرحجم پیش‌فرض btrfs) نیز قابل حذف نیستند.

mount number

سوار کردن (mount) یک اسنپ‌شات. برای همه انواع سیستم‌فایل لازم نیست.

umount number

پیاده کردن (unmount) یک اسنپ‌شات. برای همه انواع سیستم‌فایل لازم نیست.

status [options] number1..number2

مقایسه اسنپ‌شات‌های number1 و number2. این دستور فهرستی از فایل‌ها و دایرکتوری‌هایی را نمایش می‌دهد که در بازه زمانی ایجاد این دو اسنپ‌شات ایجاد، ویرایش یا حذف شده‌اند.

-o, --output file

نوشتن خروجی در فایل file.

خروجی شامل یک رشته کدگذاری‌کننده وضعیت و به دنبال آن نام فایل است. نویسه‌های رشته وضعیت عبارتند از:

1.علامت "+" به این معنی است که فایل ایجاد شده است، علامت "-" به این معنی است که فایل حذف شده است. علامت "c" به این معنی است که محتوای فایل تغییر کرده و "t" یعنی نوع فایل تغییر یافته است (مانند تبدیل از فایل عادی به دایرکتوری).
2.علامت "p" به این معنی است که مجوزها تغییر کرده‌اند.
3.علامت "u" به این معنی است که مالکیت کاربر تغییر کرده است.
4.علامت "g" به این معنی است که مالکیت گروه تغییر کرده است.
5.علامت "x" به این معنی است که اطلاعات صفت گسترش‌یافته (extended attribute) تغییر کرده است.
6.علامت "a" به این معنی است که اطلاعات ACL تغییر کرده است.

اگر تغییری وجود نداشته باشد علامت "." خروجی داده می‌شود.

diff [options] number1..number2 [files]

مقایسه اسنپ‌شات‌های number1 و number2. این دستور تفاوت (diff) محتوای فایل‌ها و دایرکتوری‌هایی را که در بازه زمانی ایجاد این دو اسنپ‌شات ایجاد، ویرایش یا حذف شده‌اند، نمایش می‌دهد.

-i, --input file

خواندن فایل‌های مورد مقایسه از فایل file.

--diff-cmd command

دستور مورد استفاده برای مقایسه فایل‌ها. مقدار پیش‌فرض /usr/bin/diff --new-file --unified است. دو فایل برای مقایسه به‌عنوان پارامتر به دستور ارسال می‌شوند.

-x, --extensions options

گزینه‌های اضافی ارسالی به دستور diff.

undochange [options] number1..number2 [files]

واگردانی تغییرات ایجادشده بین اسنپ‌شات number1 و number2.

-i, --input file

خواندن فایل‌هایی که تغییرات آن‌ها باید واگردانی شود از فایل file.

rollback [options] [number]

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

دستور rollback فقط در btrfs پشتیبانی می‌شود و نیاز به سیستمی با پیکربندی مناسب دارد.

-p, --print-number

چاپ شماره دومین اسنپ‌شات ایجادشده.

-d, --description description

توضیح برای اسنپ‌شات.

-c, --cleanup-algorithm cleanup-algorithm

تنظیم الگوریتم پاکسازی برای اسنپ‌شات.

-u, --userdata userdata

تنظیم داده کاربری برای اسنپ‌شات. جفت‌های کلید-مقدار باید با کاما جدا شوند و کلید و مقدار باید با علامت مساوی از هم جدا شوند، مانند requestid=42,user=arthur.

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

در حوزه‌هایی غیر از classic، دستور rollback آنچه را که برای انجام واگردانی لازم است انجام می‌دهد. در هر حال توصیه می‌شود در آن شرایط از برنامه‌های اختصاصی استفاده شود.

setup-quota

راه‌اندازی سهمیه (quota). در حال حاضر فقط در btrfs پشتیبانی می‌شود.

cleanup [options] cleanup-algorithm

اجرای الگوریتم پاکسازی cleanup-algorithm. الگوریتم‌های پاکسازی پیاده‌سازی‌شده در حال حاضر عبارتند از number، timeline و empty-pre-post. برای اجرای همه الگوریتم‌های پاکسازی، می‌توان all را به‌عنوان cleanup-algorithm ارائه داد.

--path path

پاکسازی تمام پیکربندی‌های موثر بر مسیر. فقط برای btrfs مفید است.

--free-space free-space

تلاش برای ایجاد فضای خالی در دسترس. فقط برای btrfs مفید است.

xadiff number1..number2 [files]

مقایسه ویژگی‌های گسترش‌یافته بین اسنپ‌شات number1 و number2. مثال‌های زیر را ببینید:
•+:user.foo برای صفت‌های ایجادشده
•-:user.bar برای صفت‌های حذف‌شده
•-+:security.selinux برای صفت‌های تغییریافته

کاربران غیر ریشه می‌توانند با تنظیم ALLOW_USERS یا ALLOW_GROUPS در فایل پیکربندی، اجازه استفاده از یک پیکربندی را پیدا کنند. برای اینکه تمام عملیات‌ها کار کنند، کاربر باید بتواند دایرکتوری .snapshots درون subvolume را بخواند و به آن دسترسی داشته باشد. دایرکتوری .snapshots باید متعلق به root باشد و نباید توسط هیچ کاربر دیگری قابل نوشتن باشد.

در اینجا چند روش برای دستیابی به این هدف آورده شده است:

•دایرکتوری را برای همه قابل دسترس کنید:

chmod a+rx .snapshots

•دایرکتوری را برای گروهی که کاربر عضو آن است قابل دسترس کنید، مانند:

chown :users .snapshots

•با استفاده از ACL دایرکتوری را برای کاربر قابل دسترس کنید، مانند:

setfacl -m u:tux:rx .snapshots

روش آخر می‌تواند توسط snapper انجام شود، تنظیم SYNC_ACL در snapper-configs(5) را ببینید.

ابزار snapper می‌تواند اسکریپت‌های خارجی را پس از اقدامات خاصی اجرا کند. اسکریپت‌ها باید در /usr/lib/snapper/plugins قرار گیرند. نام باید با یک رقم شروع شود و ترتیب اجرا بر اساس حروف الفبا است.

آرگومان اول یک اسکریپت، اقدامی است که snapper اجرا کرده است. اقدامات زیر تعریف شده‌اند:

create-config-pre subvolume fstype

قبل از ایجاد یک پیکربندی جدید اجرا می‌شود

create-config-post subvolume fstype

بعد از ایجاد یک پیکربندی جدید اجرا می‌شود

delete-config-pre subvolume fstype

قبل از حذف یک پیکربندی اجرا می‌شود

delete-config-post subvolume fstype

بعد از حذف یک پیکربندی اجرا می‌شود

create-snapshot-pre subvolume fstype snapshot-number

قبل از ایجاد یک اسنپ‌شات جدید اجرا می‌شود

create-snapshot-post subvolume fstype snapshot-number

بعد از ایجاد یک اسنپ‌شات جدید اجرا می‌شود

modify-snapshot-pre subvolume fstype snapshot-number

قبل از تغییر یک اسنپ‌شات اجرا می‌شود

modify-snapshot-post subvolume fstype snapshot-number

بعد از تغییر یک اسنپ‌شات اجرا می‌شود

delete-snapshot-pre subvolume fstype snapshot-number

قبل از حذف یک اسنپ‌شات اجرا می‌شود

delete-snapshot-post subvolume fstype snapshot-number

بعد از حذف یک اسنپ‌شات اجرا می‌شود

set-read-only-pre subvolume fstype snapshot-number

قبل از فقط‌خواندنی یا خواندنی-نوشتنی کردن اسنپ‌شات اجرا می‌شود

set-read-only-post subvolume fstype snapshot-number

بعد از فقط‌خواندنی یا خواندنی-نوشتنی کردن اسنپ‌شات اجرا می‌شود

set-default-snapshot-pre subvolume fstype snapshot-number

قبل از تغییر اسنپ‌شات پیش‌فرض اجرا می‌شود

set-default-snapshot-post subvolume fstype snapshot-number

بعد از تغییر اسنپ‌شات پیش‌فرض اجرا می‌شود

rollback-post subvolume fstype old-snapshot-number new-snapshot-number

بعد از انجام یک rollback اجرا می‌شود

اقدامات و آرگومان‌های بیشتری می‌توانند در هر زمان اضافه شوند. استفاده از snapper درون پلاگین‌ها مجاز نیست.

مشخص نیست که آیا پلاگین‌ها از طریق کلاینت (snapper) یا سرور (snapperd) فراخوانی می‌شوند.

/etc/conf.d/snapper

فایل پیکربندی سراسری.

/etc/snapper/configs

دایرکتوری حاوی فایل‌های پیکربندی.

/etc/snapper/config-templates

دایرکتوری حاوی الگوهای پیکربندی.

/usr/share/snapper/config-templates

دایرکتوری رزرو (fallback) حاوی الگوهای پیکربندی.

/etc/snapper/filters/*.txt

فایل‌های فیلتر.

/usr/share/snapper/filters/*.txt

فایل‌های فیلتر رزرو (fallback).

/var/log/snapper.log

فایل وقایع (logfile). لطفاً این فایل را در گزارش‌های اشکال بگنجانید.

به‌طور معمول وضعیت خروج 0 است. اگر خطایی رخ دهد وضعیت خروج 1 خواهد بود. همچنین اگر وضعیت خروج یک پلاگین 0 نباشد، خطا تلقی می‌شود.

هیچ سازوکاری برای تضمین سازگاری و یکپارچگی فایل‌ها در حین ایجاد اسنپ‌شات وجود ندارد. برای مثال فایل‌های یک پایگاه داده ممکن است در زمان اجرا و فعالیت پایگاه داده، ناسازگار باشند.

سازگاری پس از واگردانی تغییرات (undochange) تضمین نمی‌شود. برای مثال هنگامی که ایجاد یک کاربر واگردانی می‌شود، ممکن است فایل‌های آن کاربر همچنان باقی بمانند.

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

http://snapper.io

Arvin Schnell <aschnell@suse.com>

snapper-configs(5), snapper-zypp-plugin(8), snbk(8), pam_snapper(8), btrfs(8), lvm(8), attr(5), acl(5)

1.
RFC 4180
2026-01-02 0.13.1