volume <volume-directory>|<url>
(اختیاری)
مسیر
مطلق
اشارهکننده
به
سیستمفایل
btrfs شامل
زیرحجم(های)
مبدأ که
باید از
آنها
پشتیبانگیری
شود.
معمولاً
نقطه اتصال
یک
سیستمفایل
btrfs است که با
گزینه subvolid=5
متصل (mount) شده
است.
subvolume <subvolume-name>
زیرحجمی
که باید
پشتیبانگیری
شود، به
صورت نسبی
نسبت به
<volume-directory> در بخش
volume، یا به
صورت مطلق
در صورتی که
بخش
volume حذف
شده باشد.
نویسه عام (wildcard)
«*» پذیرفته
میشود.
توجه
داشته
باشید که
اگر این
زیرحجم
ریشه btrfs باشد
(id=5)، باید یک UUID
معتبر
داشته
باشد، که
این مورد
برای
سیستمفایلهای
ایجادشده
با btrfs-progs < 4.16 صدق
نمیکند.
target [send-receive|raw]
<target-directory>|<url>
دایرکتوری
مقصدی که
زیرحجمهای
پشتیبان
باید در آن
ایجاد شوند.
نوع مقصدِ
اختیاری به
طور
پیشفرض
“send-receive” است؛
برای
جزئیات به
بخش انواع
مقصد در زیر
مراجعه
کنید.
تعریف
چندین بخش
target در هر
زمینهای
مجاز است: یک
target
تعریفشده
در زمینه volume
یا زمینه
سراسری،
برای تمام
بخشهای subvolume
زیرمجموعه
استفاده
خواهد شد
(نکته: برای
مشاهده
پیکربندی
حاصل،
دستور “btrbk list”
یا “btrbk config print” را
اجرا کنید).
اگر یک <url>
مشخص شود،
اقدامات btrbk
(دستورات
پوسته) از
راه دور و از
طریق ssh با
استفاده از
گزینههای SSH
شرحدادهشده
در زیر اجرا
میشوند.
قالبهای
پذیرفتهشده
عبارتند
از:
ssh://<hostname>[:<port>]/<directory>
<hostname>:<directory>
که در آن
<hostname> یک نام
میزبان، یک
آدرس IPv4 به
شکل دهدهی
نقطهدار،
یا یک نشانی
IP مستقیم
درون
کروشهها
(مانند "[2001:db8::7]" )
است.
اگر به
ماشینهای
مجازی متصل
میشوید،
میتوانید
چندین بخش
volume را برای
یک <hostname>
همراه با
شمارههای
پورت (<port>)
متمایز
برای هر
ماشین
پیکربندی
کنید.
گزینههای
شرحدادهشده
در اینجا را
میتوان در
زمینه
سراسری (global context)
و همچنین
بخشهای
volume، subvolume و target
مشخص کرد،
مگر آنکه
خلاف آن ذکر
شده باشد.
timestamp_format short|long|long-iso
قالب
برچسب
زمانی مورد
استفاده به
عنوان
پسوند
نامهای
زیرحجمهای
اسنپشات
جدید. مقدار
پیشفرض “long”
است.
short
YYYYMMDD[_N]
(مانند "20150825"،
"20150825_1")
long
YYYYMMDD<T>hhmm[_N]
(مانند "20150825T1531")
long-iso
YYYYMMDD<T>hhmmss±hhmm[_N]
(مانند
"20150825T153123+0200")
توجه
داشته
باشید که
اگر
اسنپشات
یا
پشتیبانی
از قبل با
برچسب
زمانی
تاریخ/زمان
جاری وجود
داشته
باشد،
پسوند "_N" به
برچسب
زمانی
افزوده
میشود.
اگر
میخواهید
مطمئن شوید
که btrbk هرگز
برچسبهای
زمانی مبهم
ایجاد
نمیکند (که
ممکن است
هنگام
ایجاد
چندین
اسنپشات
در طول
تغییر ساعت
تابستانی
رخ دهد)، از
“long-iso”
استفاده
کنید.
توجه
داشته
باشید که
استفاده از
“long-iso” روی
زمانبندی
پیامدهایی
دارد؛ بخش
زمان مرجع
در زیر را
ببینید.
snapshot_dir <directory>
دایرکتوری
که
اسنپشاتهای
btrfs در آن
ایجاد
میشوند،
به صورت
نسبی نسبت
به <volume-directory> در
بخش volume، یا
به صورت
مطلق در
صورتی که
بخش volume حذف
شده باشد.
توجه داشته
باشید که btrbk
این
دایرکتوری
را به صورت
خودکار
ایجاد
نمیکند، و
در صورت عدم
وجود آن،
ایجاد
اسنپشات
با شکست
مواجه
خواهد شد.
snapshot_name <basename>
نام پایه
اسنپشات (و
پشتیبان)
ایجادشده.
این گزینه
تنها در بخش
subvolume معتبر
است. مقدار
پیشفرض
<subvolume-name> است.
snapshot_create always|onchange|ondemand|no
اگر روی
“always” تنظیم
شود،
اسنپشاتها
همیشه
ایجاد
میشوند.
اگر روی “onchange”
تنظیم شود،
اسنپشاتها
تنها زمانی
ایجاد
میشوند که
آخرین
اسنپشات
بهروز
نباشد،
یعنی
زیرحجم
مبدأ از
زمان ایجاد
آخرین
اسنپشات
تغییر کرده
باشد
(دقیقتر
بگوییم: نسل
یا generation
سیستمفایل
btrfs افزایش
یافته باشد).
اگر روی “ondemand”
تنظیم شود،
اسنپشاتها
تنها در
صورتی
ایجاد
میشوند که
دستکم یک
زیرحجم
مقصد در
دسترس باشد
(هنگامی
مفید است که
با کمبود
فضای دیسک
مواجه
هستید و از btrbk
فقط برای
پشتیبانگیری
روی دیسک
خارجی که
همیشه متصل
نیست
استفاده
میکنید).
اگر روی “no”
تنظیم شود،
اسنپشاتها
هرگز ایجاد
نمیشوند
(هنگامی
مفید است که
نمونه
دیگری از btrbk
وظیفه
ایجاد
اسنپشات
را بر عهده
دارد).
پیشفرض
“always” است.
incremental yes|no|strict
در صورت
فعال بودن،
پشتیبانهای
افزایشی (incremental)
ایجاد
میشوند.
اگر روی “strict”
تنظیم شود،
پشتیبانهای
غیرافزایشی
(اولیه) هرگز
ایجاد
نمیشوند و
پشتیبانهای
افزایشی
تنها به
والدهای
مرتبط (بر
اساس رابطه
parent-uuid) محدود
میگردند.
پیشفرض “yes”
است.
توجه
داشته
باشید که
حتی اگر
زنجیره parent-uuid
شکسته شود،
اسنپشاتها
و
پشتیبانها
همچنان
میتوانند
دادهها را
به اشتراک
بگذارند (که
به ویژه
برای
پشتیبانهای
ایجادشده
با فعال
بودن گزینه
incremental صادق
است) و
کاملاً به
عنوان والد
برای
عملیاتهای
ارسال-دریافت
(send-receive) افزایشی
مناسب
هستند. اما
از آنجا که btrbk
نمیتواند
از این بابت
مطمئن
باشد، چنین
عملیاتهایی
در حالت "incremental
strict" مجاز
نیستند.
noauto yes|no
در صورت
فعال بودن،
این زمینه
توسط تمام
اقدامات btrbk
نادیده
گرفته
میشود مگر
اینکه به
صراحت توسط
یک آرگومان
فیلتر (<filter>)
منطبق در خط
فرمان فعال
شده باشد
(مانند "btrbk run
myfilter").
group <group-name> [<group-name>]...
بخش جاری
(volume، subvolume یا target) را
به
گروههای
تعریفشده
توسط کاربر
اضافه
میکند، که
میتوان از
آنها به
عنوان
فیلتر برای
اکثر
دستورات btrbk
استفاده
کرد (بخش FILTER STATEMENTS
در btrbk(1) را
ببینید). این
گزینه را
میتوان
چندین بار
در همان
زمینه
تنظیم کرد.
preserve_day_of_week monday|tuesday|...|sunday
مشخص
میکند که
در چه روزی
یک
اسنپشات/پشتیبان
به عنوان
پشتیبان
«هفتگی» در
نظر گرفته
شود.
پشتیبانهای
هفتگی،
ماهانه و
سالانه در
این روز از
هفته
نگهداری
میشوند
(بخش سیاست
نگهداری در
زیر را
ببینید).
مقدار
پیشفرض
“sunday” است.
preserve_hour_of_day [0..23]
مشخص
میکند پس
از چه ساعتی
(بر حسب
ساعتهای
کامل از
نیمهشب) یک
اسنپشات/پشتیبان
به عنوان
پشتیبان
«روزانه»
در نظر
گرفته شود.
پشتیبانهای
روزانه،
هفتگی،
ماهانه و
سالانه در
این ساعت
نگهداری
میشوند
(بخش سیاست
نگهداری در
زیر را
ببینید). در
اسنپشاتها
یا
پشتیبانهای
فاقد
اطلاعات
زمان (timestamp_format short)
نادیده
گرفته
میشود.
مقدار
پیشفرض “0”
است.
snapshot_preserve no|<retention_policy>
سیاست
نگهداری
اسنپشاتها
را تنظیم
میکند (بخش
سیاست
نگهداری در
زیر را
ببینید). اگر
روی “no”
تنظیم شود،
اسنپشاتها
فقط طبق
snapshot_preserve_min
نگهداری
میشوند.
مقدار
پیشفرض “no”
است.
توجه
داشته
باشید که
اگر snapshot_preserve_min
روی “all”
(پیشفرض)
تنظیم شده
باشد، snapshot_preserve
هیچ اثری
ندارد.
snapshot_preserve_min
all|latest|<number>{h,d,w,m,y}
تمام
اسنپشاتها
را برای
حداقل
مدتزمان
ساعت (h)، روز
(d)، هفته (w)،
ماه (m) یا سال (y)
نگهداری
میکند،
صرفنظر از
اینکه چه
تعداد
اسنپشات
وجود دارد.
اگر روی “all”
تنظیم شود،
تمام
اسنپشاتها
برای همیشه
نگهداری
میشوند.
اگر روی “latest”
تنظیم شود،
آخرین
اسنپشات
نگهداری
میشود.
مقدار
پیشفرض “all”
است.
target_preserve no|<retention_policy>
سیاست
نگهداری
پشتیبانها
را تنظیم
میکند (بخش
سیاست
نگهداری در
زیر را
ببینید). اگر
روی “no”
تنظیم شود،
پشتیبانها
فقط طبق
target_preserve_min
نگهداری
میشوند.
مقدار
پیشفرض “no”
است.
توجه
داشته
باشید که
اگر target_preserve_min روی
“all”
(پیشفرض)
تنظیم شده
باشد، target_preserve
هیچ اثری
ندارد.
target_preserve_min
all|latest|no|<number>{h,d,w,m,y}
تمام
پشتیبانها
را برای
حداقل
مدتزمان
ساعت (h)، روز
(d)، هفته (w)،
ماه (m) یا سال (y)
نگهداری
میکند،
صرفنظر از
اینکه چه
تعداد وجود
دارد. اگر
روی “all”
تنظیم شود،
تمام
پشتیبانها
برای همیشه
نگهداری
میشوند.
اگر روی “latest”
تنظیم شود،
همیشه
آخرین
پشتیبان
نگهداری
میشود (در
ترکیب با
"target_preserve no"
هنگامی
مفید است که
فقط
میخواهید
آخرین
پشتیبان را
نگه دارید).
اگر روی “no”
تنظیم شود،
فقط
پشتیبانهایی
ایجاد
میشوند که
پیرو سیاست
target_preserve هستند.
پیشفرض “all”
است.
archive_preserve no|<retention_policy>
سیاست
نگهداری را
برای
بایگانیها
(دستور "btrbk archive")
تنظیم
میکند، با
همان
معناشناسیِ
target_preserve.
archive_preserve_min
all|latest|no|<number>{h,d,w,m,y}
سیاست
نگهداری را
برای
بایگانیها
(دستور "btrbk archive")
تنظیم
میکند، با
همان
معناشناسیِ
target_preserve_min.
archive_exclude <pattern>
زیرحجمهای
منطبق با <pattern>
را از
بایگانی
کردن
مستثنی
میکند. این
الگو نویسه
عام «*» را
میپذیرد و
با انتهای
نام مسیر
مطابقت
داده
میشود.
ssh_identity <file>|no
مسیر
مطلق به
فایل هویت ssh
(کلید خصوصی).
اگر تنظیم
نشود،
پیشفرض ssh
استفاده
میشود (به
ssh(1)، گزینه "-i
identity_file" مراجعه
کنید). توجه
داشته
باشید که
اگر کلید
هویت با
گذرواژه
محافظت شده
باشد و از
عامل احراز
هویت (ssh-agent)
استفاده
نشود، btrbk در
هر تلاش
برای اتصال
از کاربر
ورودی
میخواهد.
ssh_user <username>|no
نام
کاربری
دوردست
برای ssh. مقدار
پیشفرض “root”
است.
اطمینان
حاصل کنید
که کاربر
دوردست
قادر است
دستور "btrfs" را
با
دسترسیهای
ریشه اجرا
کند (برای
جزئیات
گزینه backend را
ببینید). اگر
روی “no”
تنظیم شود،
پیشفرض ssh
استفاده
میشود.
ssh_compression yes|no
فشردهسازی
اتصالات ssh را
فعال یا
غیرفعال
میکند.
مقدار
پیشفرض “no”
است. توجه
داشته
باشید که
اگر stream_compress
فعال باشد،
فشردهسازی
ssh همیشه برای
عملیاتهای
ارسال/دریافت
غیرفعال
خواهد بود.
ssh_cipher_spec default|<cipher_spec>
مشخصات
الگوریتم
رمزنگاری (cipher)
را برای
رمزگذاری
نشست
انتخاب
میکند
(فهرستی از
رمزها با
کاما جدا
شده به
ترتیب
اولویت).
برای
اطلاعات
بیشتر به
گزینه "-c cipher_spec"
در ssh(1) مراجعه
کنید. مقدار
پیشفرض
“default” است
(رمزهای
مشخصشده
در ssh_config(5)).
stream_compress <compress_command>|no
جریان
ارسال btrfs را
پیش از
انتقال آن
از/به
مکانهای
دوردست
فشرده
میکند.
مقدار
پیشفرض “no”
است. در صورت
فعال بودن،
اطمینان
حاصل کنید
که <compress_command> روی
میزبانهای
مبدأ و مقصد
در دسترس
است.
دستورات
فشردهسازی
پشتیبانیشده
(<compress_command>): gzip, pigz, bzip2, pbzip2, bzip3, xz, lzo,
lz4, zstd.
stream_compress_level default|<number>
سطح
فشردهسازی
برای دستور
فشردهسازیِ
مشخصشده
(<compress_command>). برای
جزئیات به
صفحه
راهنمای
مربوطه
مراجعه
کنید
(معمولاً [1..9]،
که در آن ۱ به
معنای
سریعترین
فشردهسازی
است). مقدار
پیشفرض
“default” است (سطح
فشردهسازی
پیشفرض
<compress_command>).
stream_compress_long default|<number>
تطبیق
فاصله
طولانی (long distance matching)
را برای
<compress_command>
مشخصشده
فعال
میکند.
برای
جزئیات به
صفحه
راهنمای
مربوطه
مراجعه
کنید. تنها
برای "zstd"
پشتیبانی
میشود.
stream_compress_threads default|<number>
تعداد
نخها (threads)
برای
استفاده در
<compress_command>. تنها
برای "pigz"،
"pbzip2"، "bzip3"، "zstd" و
نسخههای
اخیر "xz"
پشتیبانی
میشود.
stream_compress_adapt yes|no
فشردهسازی
تطبیقی را
برای <compress_command>
فعال
میکند.
تنها برای
"zstd" (نسخه >= 1.3.6)
پشتیبانی
میشود.
پیشفرض “no”
است.
stream_buffer <size>|no
یک بافر
به جریان
ارسال btrfs
(بهصورت
محلی، روی
دادههای
غیرفشرده)
با حداکثر
اندازه
<size>
اضافه
میکند. این
کار
میتواند
در هر دو
عملیات
محلی یا
دوردست
بهبود سرعت
(تا ۲۰٪
اندازهگیریشده)
به همراه
داشته
باشد، اما
بار سیستم
را نیز
افزایش
میدهد.
میتوان
پسوند "k"،
"m"، "g" یا "%"
را به
<size>
اضافه کرد
تا
کیلوبایت
(*1024)،
مگابایت،
گیگابایت،
یا درصدی از
کل حافظه
فیزیکی را
نشان دهد.
پیشفرض “no”
است.
در صورت
فعال بودن،
اطمینان
حاصل کنید
که دستور
"mbuffer" (دستکم
نسخه 20180505) روی
میزبانی که
btrbk را اجرا
میکند در
دسترس باشد.
از زمان btrbk-0.29.0،
ابزار mbuffer(1)
برای هر دو
گزینه rate_limit و
stream_buffer
استفاده
میشود:
mbuffer [-m <stream_buffer>] [-r <rate_limit>]
توجه
داشته
باشید که mbuffer(1)
همیشه
مقادیر
پیشفرض را
از "/etc/mbuffer.rc"
و "~/.mbuffer.rc"
میخواند.
اگر دغدغه
اصلی شما
پایداری
فرایند
پشتیبانگیری
است، این
گزینه را
غیرفعال
بگذارید:
اگرچه
نسخههای
اخیر mbuffer
قابلیت
اطمینان
خود را ثابت
کردهاند،
اغلب مطلوب
است که امور
ساده نگه
داشته شوند
تا اینکه یک
فرایند
چندنخیِ
اضافی به خط
لوله دستور
افزوده
شود.
stream_buffer_remote <size>|no
یک بافر
روی
میزبانهای
دوردست
(مبدأ یا
مقصد) اضافه
میکند.
پیشفرض “no”
است.
اگر ترجیح
میدهید
بافرسازی
در سمت
دوردست یا
حتی هر دو
سمت انجام
شود، این
گزینه را
فعال کنید:
دلایل این
انتخاب به
حافظه
موجود،
عملکرد
دیسک و
پردازنده
(ارسال/دریافت
btrfs،
فشردهسازی)
و همچنین
محدودیتهای
شبکه بستگی
دارد.
rate_limit <rate>|no
نرخ
خواندن
جریان
ارسال btrfs را
به <rate> بایت
بر ثانیه
محدود
میکند (به
صورت محلی،
روی جریان
ارسال
فشردهنشده).
میتوان یک
پسوند "k"،
"m"، "g" یا "t"
برای نشان
دادن
کیلوبایت
(*1024)، مگابایت
و غیره
اضافه کرد.
پیشفرض “no”
است. توجه
داشته
باشید که rate_limit
به طور ضمنی
یک بافر
جریان
اضافه
میکند
(گزینه stream_buffer
در بالا را
ببینید).
rate_limit_remote <rate>|no
محدودیت
نرخ را روی
میزبانهای
دوردست
(مبدأ یا
مقصد) اعمال
میکند.
پیشفرض “no”
است. توجه
داشته
باشید که
معمولاً
فعال کردن
همزمان هر
دو گزینه rate_limit
و rate_limit_remote منطقی
نیست.
transaction_log <file>|no
در صورت
تنظیم،
تمام
تراکنشها
(ایجاد
اسنپشات،
ارسال-دریافت
زیرحجم،
حذف زیرحجم)
و همچنین
پیامهای
لغو (abort) در
قالب یک
جدول
فاصلهبندیشده
در <file> ثبت
میشوند: "localtime type
status target_url source_url parent_url message".
transaction_syslog <facility>|no
در صورت
تنظیم،
تمام
تراکنشها
(همانطور
که در transaction_log در
بالا شرح
داده شد) در syslog
ثبت
میشوند.
نام برنامه
مورد
استفاده در
پیامها "btrbk"
است.
پارامترهای
پذیرفتهشده
برای <facility>: user, mail, daemon,
auth, lpr, news, cron, authpriv, local0..local7.
lockfile <file>|no
یک قفل
انحصاری با
استفاده از
flock(2) روی <file> در
حین اجرای
برنامه
قرار
میدهد. اگر
قفل در
اختیار
فرایند
دیگری
باشد،
برنامه پیش
از اجرای
هرگونه
اقدامی
خارج
میشود. در
حالت اجرای
آزمایشی (-n،
--dry-run) نادیده
گرفته
میشود.
همچنین
گزینه خط
فرمان --lockfile را
ببینید.
backend <backend>
ابزارهای
پشتیبان
سیستمفایل
که برای
عملیاتهای
خاص btrfs
استفاده
میشوند.
پشتیبانهای
(backends) موجود:
btrfs-progs
پشتیبان
پیشفرض؛
دستورات btrfs
همانطور
که در btrfs(8) مشخص
شده
فراخوانی
میشوند
(مانند "btrfs subvolume
show").
btrfs-progs-btrbk
دستورات
btrfs به جای
فاصله با یک
خط تیره از
هم جدا
میشوند
(مانند "btrfs-subvolume-show"
به جای "btrfs subvolume show").
برای تنظیم suid
یا
قابلیتهای
فایل (setcap) روی
دستورات
خاص btrfs مفید
است،
همانطور
که در
https://github.com/digint/btrfs-progs-btrbk.
پیادهسازی
شده است.
btrfs-progs-sudo
دستورات
btrfs با پیشوند
"sudo -n" همراه
میشوند
(مانند "sudo -n btrfs subvolume
show" به جای "btrfs subvolume
show"). اطمینان
حاصل کنید
که
دسترسیهای
مناسب (ریشه)
برای
گروههای
دستوری "btrfs" و
همچنین
دستورات "readlink"
و "test" در /etc/sudoers
وجود داشته
باشد.
btrfs-progs-doas
مشابه
btrfs-progs-sudo، با
استفاده از
پیشوند "doas -n".
اگر
میخواهید
این گزینه
را فقط برای
میزبانهای
محلی یا
دوردست
تنظیم
کنید، backend_local
یا backend_remote را
مشخص کنید
(مانند "backend_remote
btrfs-progs-btrbk").
اگر
میخواهید
این گزینه
را فقط برای
کاربر عادی
(غیر ریشه)
تنظیم
کنید، backend_local_user
را مشخص
کنید.
compat <compat-option>...
گزینههای
سازگاری را
فعال
میکند.
گزینههای
سازگاری
(
compat-option) موجود:
busybox
استفاده
از دستورات
سازگار با
busybox، به بهای
سربار جزئی
هنگام
خواندن
اطلاعات
سیستمفایل.
ignore_receive_errors *experimental*
به btrfs-receive(8)
دستور
میدهد تا
با تنظیم
گزینه "
--max-errors=0"
هنگام بروز
خطا متوقف
نشود. در
عوض،
هشدارها را
چاپ کند.
یک کاربرد
شناختهشده
برای این
گزینه،
میزبانهای
مقصدی
هستند که از
xattr پشتیبانی
نمیکنند
(مانند برخی
از NASهای Synology)،
در حالی که
جریان
ارسال شامل
دستورات
"lsetxattr" است.
مورد دیگر
مقصدهایی
هستند که در
تنظیم otime
شکست
میخورند و
خطای "ERROR: attribute 12 requested but not
present" میدهند.
توجه
داشته
باشید که
هیچ تضمینی
وجود ندارد
که
پشتیبانهای
ایجادشده
با فعال
بودن این
گزینه
اصلاً قابل
بازیابی
باشند.
اگر
میخواهید
این گزینه
را فقط برای
میزبانهای
محلی یا
دوردست
تنظیم
کنید، compat_local
یا compat_remote را
مشخص کنید
(مانند "compat_remote
busybox").
cache_dir <directory>
در صورت
تنظیم،
نقشههای extent
را برای
دستور "btrbk extents"
کش (ذخیره
موقت)
میکند.
incremental_prefs <list-spec>[:<amount>]...
اولویتها
را برای
تعیین
بهترین
والد مشترک
(همبسته) و
منابع کلون
(clone) برای
پشتیبانهای
افزایشی،
با انتخاب
از
فهرستهای
کاندیدای
از
پیشتعریفشده،
مشخص
میکند.
عبارت list-spec
مشخص
میکند
والد/منبعکلون
بعدی از
کدام فهرست
کاندیدا
باید به
فهرست
نتایج
افزوده
شود؛ amount
تعداد را
مشخص
میکند
(مانند "sro:1 sro:1"
که همارز
با "sro:2" است)،
یا در صورت
حذف، تمام
موارد. هر
کاندیدایی
که از قبل در
نتایج باشد
کنار
گذاشته
میشود.
فهرست
حاصل از
زیرحجمها
سپس به
عنوان
پارامترهای
دستور btrfs-send(8)
استفاده
میشود:
اولین مورد
برای "-p <parent>" و
بقیه موارد
برای "-c <clone-src>".
شناسههای
list-spec موجود
(فهرستهای
کاندیدا =
زیرمجموعههای
فیلترشده
از
زیرحجمهای
همبسته):
sro,srn
تمام
موارد از snapshot_dir
منطبق با
snapshot_name، با
رابطه parent_uuid،
مرتبشده
بر اساس
برچسب
زمانی btrbk (حرف
o=قدیمیتر،
n=جدیدتر).
sao,san
تمام
موارد از snapshot_dir
منطبق با
snapshot_name،
مرتبشده
بر اساس
برچسب
زمانی btrbk (حرف
o=قدیمیتر،
n=جدیدتر).
aro,arn
تمام
موارد از
incremental_resolve، با
رابطه parent_uuid،
مرتبشده
بر اساس cgen
(حرف
o=قدیمیتر،
n=جدیدتر).
مقدار
پیشفرض "sro:1 srn:1
sao:1 san:1 aro:1 arn:1" است.
توجه داشته
باشید که
برای بیشتر
عملیاتها،
مقدار
پیشفرض به
یک والد
منفرد حل
میشود،
زیرا
معمولاً
اسنپشاتهای
جدیدتری
وجود
ندارد، و
تمام "sro:1 sao:1 aro:1"
به همان یک
اسنپشات
منتهی
میشوند.
مثال:
"defaults,sao,san,aro,arn"
مقادیر
پیشفرض را
میگیرد و
منابع کلون
را برای
تمام (!)
کاندیداهای
شناختهشده
در
سیستمفایل
اضافه
میکند.
incremental_clones yes|no
در صورت
فعال بودن،
btrbk گزینه "-c
<clone-src>" را به
دستور btrfs-send(8)
برای تمام
زیرحجمهای
همبسته
حلشده
توسط incremental_prefs
اضافه
میکند. در
صورت
غیرفعال
بودن، فقط "-p
<parent>" استفاده
میشود.
پیشفرض “yes”
است.
incremental_resolve mountpoint|directory
مشخص
میکند
برای یافتن
بهترین
والد مشترک
برای
پشتیبانهای
افزایشی در
کجا جستجو
شود. اگر روی
“mountpoint” تنظیم
شود، از
والدها در
درخت
سیستمفایلِ
زیر نقطه
اتصال
دایرکتوری
اسنپشات و
مقصد
استفاده
میکند. اگر
روی “directory”
تنظیم شود،
از والدهای
کاملاً زیر
دایرکتوریهای
اسنپشات/مقصد
استفاده
میکند. اگر
با مشکلات
دسترسی
مواجه
میشوید
(زمانی که btrbk
به عنوان
ریشه اجرا
نمیشود)،
این را روی
“directory” تنظیم
کنید.
پیشفرض
“mountpoint” است.
btrfs_commit_delete yes|no
در صورت
تنظیم، در
پایان حذف
هر
اسنپشات
یا
پشتیبان،
منتظر ثبت
تراکنش (commit)
میماند
(گزینه --commit-each
را برای "btrfs subvolume
delete" تنظیم
میکند).
پیشفرض “no”
است.
send_protocol <number>|no *experimental*
استفاده
از پروتکل
ارسال btrfs
نسخه N. اگر در
target فعال
شود، btrbk
گزینه "--proto <number>"
را به دستور
btrfs-send(8) اضافه
میکند.
پیشفرض “no”
است
(پیشفرض btrfs).
send_compressed_data yes|no *experimental*
دادههایی
را که روی
سیستمفایل
فشرده
شدهاند
مستقیماً
بدون خارج
کردن از
فشردهسازی
ارسال
میکند. این
کار به نسخه
پروتکل ۲ یا
بالاتر (btrfs-progs >= 5.19)
نیاز دارد،
و به طور
ضمنی "send_protocol 2" را
اعمال
میکند. اگر
در target فعال
شود، btrbk
گزینه "--compressed-data"
را به دستور
btrfs-send(8) اضافه
میکند.
پیشفرض “no”
است
(پیشفرض btrfs).
snapshot_qgroup_destroy yes|no *experimental*
target_qgroup_destroy yes|no *experimental*
archive_qgroup_destroy yes|no *experimental*
warn_unknown_targets yes|no
در صورت
تنظیم،
چنانچه btrbk با
یک زیرحجم
مقصد در
مکانی
ناشناخته
مواجه شود
(یعنی از طرح
نامگذاری btrbk
پیروی
نکند، یا
خارج از
دایرکتوری
مقصد باشد)،
یک هشدار
چاپ میکند.
مقدار
پیشفرض “no”
است.
سیاستهای
نگهداری به
طور
جداگانه
برای
اسنپشاتها،
پشتیبانها
و
بایگانیها
(که در متن
زیر به طور
خلاصه
«پشتیبانها»
نامیده
میشوند)،
با استفاده
از ترکیبی
از موارد
زیر تعریف
میشوند:
*_preserve_min all|latest|no|<number>{h,d,w,m,y}
مدت
زمانی که در
طول آن تمام
پشتیبانها
نگهداری
میشوند.
*_preserve no|<retention_policy>
جدول
زمانی (نقاط
منفرد در
زمان) که
برای آن
پشتیبانهای
منفرد
نگهداری
میشوند.
توجه
داشته
باشید که
اگر "preserve_min" روی
“all”
(پیشفرض)
تنظیم شده
باشد،
هرگونه
تنظیمی از
"preserve" بدیهی
است که اثری
نخواهد
داشت.
قالب <retention_policy>
به این صورت
است:
[<hourly>h] [<daily>d] [<weekly>w] [<monthly>m] [<yearly>y]
hourly
مشخص
میکند که
پشتیبانهای
ساعتی تا
چند ساعت
قبل باید
نگهداری
شوند. اولین
پشتیبان یک
ساعت، یک
پشتیبان
ساعتی
محسوب
میشود.
daily
مشخص
میکند که
پشتیبانهای
روزانه تا
چند روز قبل
باید
نگهداری
شوند. اولین
پشتیبان یک
روز (شروع از
preserve_hour_of_day) یک
پشتیبان
روزانه
محسوب
میشود.
weekly
مشخص
میکند که
پشتیبانهای
هفتگی تا
چند هفته
قبل باید
نگهداری
شوند. اولین
پشتیبان
روزانه
ایجادشده
در preserve_day_of_week (یا
اولین
پشتیبان در
این هفته در
صورتی که در
آن روز دقیق
پشتیبانی
گرفته نشده
باشد) به
عنوان یک
پشتیبان
هفتگی در
نظر گرفته
میشود.
monthly
مشخص
میکند که
پشتیبانهای
ماهانه تا
چند ماه قبل
باید
نگهداری
شوند. هر
نخستین
پشتیبان
هفتگی در یک
ماه، به
عنوان یک
پشتیبان
ماهانه در
نظر گرفته
میشود.
yearly
مشخص
میکند که
پشتیبانهای
سالانه تا
چند سال قبل
باید
نگهداری
شوند. هر
نخستین
پشتیبان
ماهانه در
یک سال، به
عنوان یک
پشتیبان
سالانه در
نظر گرفته
میشود.
از یک
علامت
ستاره (*)
برای “all”
استفاده
کنید (به
عنوان مثال
"target_preserve 60d *m" بیان
میکند:
«پشتیبانهای
روزانه را
برای ۶۰ روز
قبل و تمام
پشتیبانهای
ماهانه را
نگهداری
کن»).
نکته: btrbk را
با گزینه -S،
--print-schedule اجرا
کنید تا یک
خروجی جامع
از نتایج
زمانبند
به دست
آورید.
زمان محلی
روی
میزبانی که
btrbk را اجرا
میکند،
زمان مرجع
را برای
تمام
محاسبات
تاریخ/زمان،
به ویژه
برای «آغاز
یک روز»، و
در نتیجه
برای
نخستین
پشتیبانهای
روزانه،
هفتگی،
ماهانه یا
سالانه
مشخص
میکند.
زمان محلی
روی
میزبانهای
دوردست
(مبدأ/مقصد ssh)
هرگز
استفاده
نمیشود.
مگر اینکه
"timestamp_format long-iso"
تنظیم شده
باشد،
پشتیبانهای
روزانه در
"preserve_hour_of_day"
(پیشفرض
نیمهشب)
منطقه
زمانی
مربوطه
نگهداری
میشوند (و
نه در "00:00 UTC" که
در
هونولولو
معادل "14:00"
خواهد بود).
این موضوع
برای
پیکربندیهایی
با چندین
نمونه btrbk
اهمیت
مییابد،
مانند
نمونههای
متعدد
فقط-اسنپشات
(پراکنده در
سراسر
جهان)، و یک
نمونه
فقط-دریافت
روی سرور
پشتیبان.
نکته مهم:
•اگر "timestamp_format
long-iso" تنظیم
شده باشد،
هر نمونه btrbk
تفسیر
متفاوتی از
«نخستین در
روز» دارد.
اطمینان
حاصل کنید
که btrbk را با
منطقه
زمانی
یکسان روی
هر میزبان
اجرا
میکنید،
مثلاً با
تنظیم
متغیر
محیطی TZ (به tzset(3)
مراجعه
کنید).
send-receive
پشتیبانگیری
در یک
سیستمفایل
btrfs، با
استفاده از
"btrfs send/receive". این
نوع، مقصدِ
توصیهشده
(استاندارد)
است. <target-directory>
باید یک
مسیر مطلق
باشد و به یک
زیرحجم یا
دایرکتوری
در یک
سیستمفایل
btrfs اشاره کند.
به btrfs-send(8) و btrfs-receive(8)
مراجعه
کنید.
raw *experimental*
پشتیبانگیری
در یک فایل
خام (مستقل
از
سیستمفایل)
از خروجی
btrfs-send(8)، همراه
با
فشردهسازی
و رمزگذاری
اختیاری.
توجه
داشته
باشید که
سازوکار
نگهداری
مقصد در حال
حاضر برای
پشتیبانهای
خام
افزایشی
غیرفعال
است (btrbk هیچ
فایل خام
افزایشی را
حذف
نمیکند)!
پشتیبانهای
خام از دو
فایل تشکیل
شدهاند:
فایل داده
اصلی شامل
جریان
ارسال btrfs، و
یک فایل
جانبی ".info"
حاوی
فراداده:
<snapshot-name>.<timestamp>[_N].btrfs[.gz|.bz2|...][.gpg]
<snapshot-name>.<timestamp>[_N].btrfs[.gz|.bz2|...][.gpg].info
برای
پشتیبانهای
افزایشی (incremental
"incremental yes")،
لطفاً توجه
داشته
باشید که:
•به محض
اینکه یک
فایل
پشتیبان
افزایشی (incremental)
از بین برود
یا خراب
شود، تمام
پشتیبانهای
افزایشی
بعدی
نامعتبر
میشوند،
زیرا دیگر
هیچ والد
مشترکی
برای
تصاویر
افزایشی
بعدی وجود
ندارد. این
ممکن است
سازش خوبی
برای یک طرح
پشتیبانگیری
در زمان
تعطیلات
باشد، اما
برای
طولانیمدت
اطمینان
حاصل کنید
که هر از
گاهی یک
پشتیبان
غیرافزایشی
گرفته شود.
•در حال
حاضر هیچ
پشتیبانی
برای چرخش (rotation)
پشتیبانهای
افزایشی
وجود ندارد:
اگر incremental
تنظیم شده
باشد، باید
هر از گاهی
یک پشتیبان
کامل به
صورت دستی
گرفته شود
تا بتوان
پشتیبانهای
قدیمی را
حذف کرد.
گزینههای
اضافی برای
مقصدهای raw:
raw_target_compress <compress_command>|no
الگوریتم
فشردهسازی
برای
استفاده در
مقصد
پشتیبان
خام.
دستورات
فشردهسازیِ
پشتیبانیشده
(<compress_command>): gzip, pigz, bzip2, pbzip2, bzip3, xz, lzo,
lz4, zstd.
raw_target_compress_level default|<number>
سطح
فشردهسازی
برای <compress_command>
مشخصشده.
raw_target_compress_long default|<number>
فعال
کردن تطبیق
فاصله
طولانی
برای <compress_command>.
raw_target_compress_threads default|<number>
تعداد
نخها برای
استفاده در
<compress_command>.
raw_target_split <size>|no
تقسیم
فایل
پشتیبان
خام به
بخشهایی
با اندازه
<size>.
raw_target_block_size <number>
اندازه
بلوک برای
نوشتن فایل
پشتیبان
خام. مقدار
پیشفرض “128K”
است.
raw_target_encrypt gpg|openssl_enc|no
در صورت
فعال بودن،
فایل خام
مقصد را با
استفاده از gpg
یا openssl_enc
رمزگذاری
میکند.
گزینههای
اضافی برای
"raw_target_encrypt gpg":
gpg_keyring <file>
دستهکلید
(keyring) مورد
استفاده
برای gpg،
مانند
"/etc/btrbk/gpg/pubring.kbx".
gpg_recipient <name>...
رمزگذاری
برای شناسه
کاربر <name>
(نشانی
ایمیل).
گزینههای
اضافی برای
"raw_target_encrypt openssl_enc"
(بسیار
تجربی):
openssl_ciphername <name>
پیشفرض
“aes-256-cbc” است.
openssl_iv_size <size-in-bytes>|no
بستگی به
رمز
انتخابشده
دارد.
openssl_keyfile <file>|no
اشاره به
یک فایل
کلید در
قالب
هگزادسیمال
(مسیر مطلق).
مثال ایجاد
فایل کلید
(کلید ۲۵۶
بیتی):
# dd if=/dev/urandom bs=1 count=32 \
| od -x -A n \
| tr -d "[:space:]" > /path/to/keyfile
kdf_backend <file>|no
پشتیبان
KDF که باید
اجرا شود،
مانند
"/usr/share/btrbk/scripts/kdf_pbkdf2.py".
kdf_keysize <size-in-bytes>
پیشفرض
“32” است.
kdf_keygen once|each
پیشفرض
“once” است.