'\" t .\" Title: btrbk.conf .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.26 .\" Date: 2026-07-19 .\" Manual: Btrbk Manual .\" Source: Btrbk 0.32.7 .\" Language: Persian .\" .TH "BTRBK.CONF" "5" "2026-07-19" "Btrbk 0.32.7" "فایل‌های پیکربندی" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "نام (NAME)" btrbk.conf \- فایل پیکربندی btrbk .SH "خلاصه دستور (SYNOPSIS)" .sp .nf /etc/btrbk.conf /etc/btrbk/btrbk.conf .fi .br .SH "توضیحات (DESCRIPTION)" .sp فایل پیکربندی btrbk مشخص می‌کند کدام زیرحجم‌های (subvolume) btrfs در سیستم‌فایل باید پردازش شوند، چه زیرحجم‌های مقصدی باید برای ایجاد پشتیبان‌ها به کار روند، و اسنپ‌شات‌ها باید در کجا ایجاد شوند. سیاست نگهداری و همچنین بیشتر گزینه‌های دیگر را می‌توان به‌صورت سراسری یا درون یک بخش مشخص تعریف کرد. .sp گزینه‌های مشخص‌شده همیشه برای آخرین بخشی که با آن مواجه می‌شوید اعمال می‌شوند و مقادیر تنظیم‌شده در بخش‌های سطوح بالاتر را بازنویسی می‌کنند. این بدان معناست که گزینه‌های سراسری باید پیش از تعریف هرگونه بخشی مشخص شوند. .sp خطوط خالی نادیده گرفته می‌شوند. نویسه هش (#) آغازگر یک یادداشت (کامنت) است که تا انتهای خط ادامه می‌یابد. .SH "بخش‌ها (SECTIONS)" .sp \fBvolume\fP | (اختیاری) .RS 4 مسیر مطلق اشاره‌کننده به سیستم‌فایل btrfs شامل زیرحجم(های) مبدأ که باید از آن‌ها پشتیبان‌گیری شود. معمولاً نقطه اتصال یک سیستم‌فایل btrfs است که با گزینه .I subvolid=5 متصل (mount) شده است. .RE .sp \fBsubvolume\fP .RS 4 زیرحجمی که باید پشتیبان‌گیری شود، به صورت نسبی نسبت به .I در بخش .IR volume ، یا به صورت مطلق در صورتی که بخش .I volume حذف شده باشد. نویسه عام (wildcard) «*» پذیرفته می‌شود. .sp توجه داشته باشید که اگر این زیرحجم ریشه btrfs باشد (id=5)، باید یک UUID معتبر داشته باشد، که این مورد برای سیستم‌فایل‌های ایجادشده با btrfs\-progs < 4.16 صدق نمی‌کند. .RE .sp \fBtarget\fP [send\-receive|raw] | .RS 4 دایرکتوری مقصدی که زیرحجم‌های پشتیبان باید در آن ایجاد شوند. نوع مقصدِ اختیاری به طور پیش‌فرض \(lqsend\-receive\(rq است؛ برای جزئیات به بخش انواع مقصد در زیر مراجعه کنید. .sp تعریف چندین بخش .I target در هر زمینه‌ای مجاز است: یک .I target تعریف‌شده در زمینه .I volume یا زمینه سراسری، برای تمام بخش‌های .I subvolume زیرمجموعه استفاده خواهد شد (نکته: برای مشاهده پیکربندی حاصل، دستور \(lqbtrbk list\(rq یا \(lqbtrbk config print\(rq را اجرا کنید). .RE .sp اگر یک .I مشخص شود، اقدامات btrbk (دستورات پوسته) از راه دور و از طریق ssh با استفاده از گزینه‌های SSH شرح‌داده‌شده در زیر اجرا می‌شوند. قالب‌های پذیرفته‌شده عبارتند از: .sp .if n .RS 4 .nf .fam C ssh://[:]/ : .fam .fi .if n .RE .sp که در آن .I یک نام میزبان، یک آدرس IPv4 به شکل ده‌دهی نقطه‌دار، یا یک نشانی IP مستقیم درون کروشه‌ها (مانند "[2001:db8::7]" ) است. .sp اگر به ماشین‌های مجازی متصل می‌شوید، می‌توانید چندین بخش .I volume را برای یک .I همراه با شماره‌های پورت .RI ( ) متمایز برای هر ماشین پیکربندی کنید. .SH "گزینه‌های پیکربندی (CONFIGURATION OPTIONS)" .sp گزینه‌های شرح‌داده‌شده در اینجا را می‌توان در .I زمینه سراسری (global context) و همچنین بخش‌های .IR volume ، .I subvolume و .I target مشخص کرد، مگر آنکه خلاف آن ذکر شده باشد. .SS "گزینه‌های پایه (Basic Options)" .sp \fBtimestamp_format\fP short|long|long\-iso .RS 4 قالب برچسب زمانی مورد استفاده به عنوان پسوند نام‌های زیرحجم‌های اسنپ‌شات جدید. مقدار پیش‌فرض \(lqlong\(rq است. .sp \fBshort\fP .RS 4 \f(CRYYYYMMDD[_N]\fP (مانند "20150825"، "20150825_1") .RE .sp \fBlong\fP .RS 4 \f(CRYYYYMMDDhhmm[_N]\fP (مانند "20150825T1531") .RE .sp \fBlong\-iso\fP .RS 4 \f(CRYYYYMMDDhhmmss±hhmm[_N]\fP (مانند "20150825T153123+0200") .RE .sp توجه داشته باشید که اگر اسنپ‌شات یا پشتیبانی از قبل با برچسب زمانی تاریخ/زمان جاری وجود داشته باشد، پسوند "_N" به برچسب زمانی افزوده می‌شود. .sp اگر می‌خواهید مطمئن شوید که btrbk هرگز برچسب‌های زمانی مبهم ایجاد نمی‌کند (که ممکن است هنگام ایجاد چندین اسنپ‌شات در طول تغییر ساعت تابستانی رخ دهد)، از \(lqlong\-iso\(rq استفاده کنید. .sp توجه داشته باشید که استفاده از \(lqlong\-iso\(rq روی زمان‌بندی پیامدهایی دارد؛ بخش زمان مرجع در زیر را ببینید. .RE .sp \fBsnapshot_dir\fP .RS 4 دایرکتوری که اسنپ‌شات‌های btrfs در آن ایجاد می‌شوند، به صورت نسبی نسبت به .I در بخش .IR volume ، یا به صورت مطلق در صورتی که بخش .I volume حذف شده باشد. توجه داشته باشید که btrbk این دایرکتوری را به صورت خودکار ایجاد نمی‌کند، و در صورت عدم وجود آن، ایجاد اسنپ‌شات با شکست مواجه خواهد شد. .RE .sp \fBsnapshot_name\fP .RS 4 نام پایه اسنپ‌شات (و پشتیبان) ایجادشده. این گزینه تنها در بخش .I subvolume معتبر است. مقدار پیش‌فرض .I است. .RE .sp \fBsnapshot_create\fP always|onchange|ondemand|no .RS 4 اگر روی \(lqalways\(rq تنظیم شود، اسنپ‌شات‌ها همیشه ایجاد می‌شوند. اگر روی \(lqonchange\(rq تنظیم شود، اسنپ‌شات‌ها تنها زمانی ایجاد می‌شوند که آخرین اسنپ‌شات به‌روز نباشد، یعنی زیرحجم مبدأ از زمان ایجاد آخرین اسنپ‌شات تغییر کرده باشد (دقیق‌تر بگوییم: نسل یا generation سیستم‌فایل btrfs افزایش یافته باشد). اگر روی \(lqondemand\(rq تنظیم شود، اسنپ‌شات‌ها تنها در صورتی ایجاد می‌شوند که دست‌کم یک زیرحجم مقصد در دسترس باشد (هنگامی مفید است که با کمبود فضای دیسک مواجه هستید و از btrbk فقط برای پشتیبان‌گیری روی دیسک خارجی که همیشه متصل نیست استفاده می‌کنید). اگر روی \(lqno\(rq تنظیم شود، اسنپ‌شات‌ها هرگز ایجاد نمی‌شوند (هنگامی مفید است که نمونه دیگری از btrbk وظیفه ایجاد اسنپ‌شات را بر عهده دارد). پیش‌فرض \(lqalways\(rq است. .RE .sp \fBincremental\fP yes|no|strict .RS 4 در صورت فعال بودن، پشتیبان‌های افزایشی (incremental) ایجاد می‌شوند. اگر روی \(lqstrict\(rq تنظیم شود، پشتیبان‌های غیر‌افزایشی (اولیه) هرگز ایجاد نمی‌شوند و پشتیبان‌های افزایشی تنها به .I والد‌های مرتبط (بر اساس رابطه parent\-uuid) محدود می‌گردند. پیش‌فرض \(lqyes\(rq است. .sp توجه داشته باشید که حتی اگر زنجیره parent\-uuid شکسته شود، اسنپ‌شات‌ها و پشتیبان‌ها همچنان می‌توانند داده‌ها را به اشتراک بگذارند (که به ویژه برای پشتیبان‌های ایجادشده با فعال بودن گزینه .I incremental صادق است) و کاملاً به عنوان والد برای عملیات‌های ارسال\-دریافت (send\-receive) افزایشی مناسب هستند. اما از آنجا که btrbk نمی‌تواند از این بابت مطمئن باشد، چنین عملیات‌هایی در حالت "incremental strict" مجاز نیستند. .RE .sp \fBnoauto\fP yes|no .RS 4 در صورت فعال بودن، این زمینه توسط تمام اقدامات btrbk نادیده گرفته می‌شود مگر اینکه به صراحت توسط یک آرگومان فیلتر .RI ( ) منطبق در خط فرمان فعال شده باشد (مانند "btrbk run myfilter"). .RE .SS "گزینه‌های گروه‌بندی (Grouping Options)" .sp \fBgroup\fP [].\|.\|.\| .RS 4 بخش جاری (volume، subvolume یا target) را به گروه‌های تعریف‌شده توسط کاربر اضافه می‌کند، که می‌توان از آن‌ها به عنوان فیلتر برای اکثر دستورات btrbk استفاده کرد (بخش FILTER STATEMENTS در btrbk(1) را ببینید). این گزینه را می‌توان چندین بار در همان زمینه تنظیم کرد. .RE .SS "گزینه‌های سیاست نگهداری (Retention Policy Options)" .sp \fBpreserve_day_of_week\fP monday|tuesday|.\|.\|.\||sunday .RS 4 مشخص می‌کند که در چه روزی یک اسنپ‌شات/پشتیبان به عنوان پشتیبان «هفتگی» در نظر گرفته شود. پشتیبان‌های هفتگی، ماهانه و سالانه در این روز از هفته نگهداری می‌شوند (بخش سیاست نگهداری در زیر را ببینید). مقدار پیش‌فرض \(lqsunday\(rq است. .RE .sp \fBpreserve_hour_of_day\fP [0..23] .RS 4 مشخص می‌کند پس از چه ساعتی (بر حسب ساعت‌های کامل از نیمه‌شب) یک اسنپ‌شات/پشتیبان به عنوان پشتیبان «روزانه» در نظر گرفته شود. پشتیبان‌های روزانه، هفتگی، ماهانه و سالانه در این ساعت نگهداری می‌شوند (بخش سیاست نگهداری در زیر را ببینید). در اسنپ‌شات‌ها یا پشتیبان‌های فاقد اطلاعات زمان .RI ( timestamp_format .BR short ) نادیده گرفته می‌شود. مقدار پیش‌فرض \(lq0\(rq است. .RE .sp \fBsnapshot_preserve\fP no| .RS 4 سیاست نگهداری اسنپ‌شات‌ها را تنظیم می‌کند (بخش سیاست نگهداری در زیر را ببینید). اگر روی \(lqno\(rq تنظیم شود، اسنپ‌شات‌ها فقط طبق .I snapshot_preserve_min نگهداری می‌شوند. مقدار پیش‌فرض \(lqno\(rq است. .sp توجه داشته باشید که اگر .I snapshot_preserve_min روی \(lqall\(rq (پیش‌فرض) تنظیم شده باشد، .I snapshot_preserve هیچ اثری ندارد. .RE .sp \fBsnapshot_preserve_min\fP all|latest|{h,d,w,m,y} .RS 4 تمام اسنپ‌شات‌ها را برای حداقل مدت‌زمان ساعت (h)، روز (d)، هفته (w)، ماه (m) یا سال (y) نگهداری می‌کند، صرف‌نظر از اینکه چه تعداد اسنپ‌شات وجود دارد. اگر روی \(lqall\(rq تنظیم شود، تمام اسنپ‌شات‌ها برای همیشه نگهداری می‌شوند. اگر روی \(lqlatest\(rq تنظیم شود، آخرین اسنپ‌شات نگهداری می‌شود. مقدار پیش‌فرض \(lqall\(rq است. .RE .sp \fBtarget_preserve\fP no| .RS 4 سیاست نگهداری پشتیبان‌ها را تنظیم می‌کند (بخش سیاست نگهداری در زیر را ببینید). اگر روی \(lqno\(rq تنظیم شود، پشتیبان‌ها فقط طبق .I target_preserve_min نگهداری می‌شوند. مقدار پیش‌فرض \(lqno\(rq است. .sp توجه داشته باشید که اگر .I target_preserve_min روی \(lqall\(rq (پیش‌فرض) تنظیم شده باشد، .I target_preserve هیچ اثری ندارد. .RE .sp \fBtarget_preserve_min\fP all|latest|no|{h,d,w,m,y} .RS 4 تمام پشتیبان‌ها را برای حداقل مدت‌زمان ساعت (h)، روز (d)، هفته (w)، ماه (m) یا سال (y) نگهداری می‌کند، صرف‌نظر از اینکه چه تعداد وجود دارد. اگر روی \(lqall\(rq تنظیم شود، تمام پشتیبان‌ها برای همیشه نگهداری می‌شوند. اگر روی \(lqlatest\(rq تنظیم شود، همیشه آخرین پشتیبان نگهداری می‌شود (در ترکیب با "target_preserve no" هنگامی مفید است که فقط می‌خواهید آخرین پشتیبان را نگه دارید). اگر روی \(lqno\(rq تنظیم شود، فقط پشتیبان‌هایی ایجاد می‌شوند که پیرو سیاست .I target_preserve هستند. پیش‌فرض \(lqall\(rq است. .RE .sp \fBarchive_preserve\fP no| .RS 4 سیاست نگهداری را برای بایگانی‌ها (دستور "btrbk archive") تنظیم می‌کند، با همان معناشناسیِ .IR target_preserve . .RE .sp \fBarchive_preserve_min\fP all|latest|no|{h,d,w,m,y} .RS 4 سیاست نگهداری را برای بایگانی‌ها (دستور "btrbk archive") تنظیم می‌کند، با همان معناشناسیِ .IR target_preserve_min . .RE .sp \fBarchive_exclude\fP .RS 4 زیرحجم‌های منطبق با را از بایگانی کردن مستثنی می‌کند. این الگو نویسه عام «*» را می‌پذیرد و با انتهای نام مسیر مطابقت داده می‌شود. .RE .SS "گزینه‌های SSH (SSH Options)" .sp \fBssh_identity\fP |no .RS 4 مسیر مطلق به فایل هویت ssh (کلید خصوصی). اگر تنظیم نشود، پیش‌فرض ssh استفاده می‌شود (به ssh(1)، گزینه "\-i identity_file" مراجعه کنید). توجه داشته باشید که اگر کلید هویت با گذرواژه محافظت شده باشد و از عامل احراز هویت (ssh-agent) استفاده نشود، btrbk در هر تلاش برای اتصال از کاربر ورودی می‌خواهد. .RE .sp \fBssh_user\fP |no .RS 4 نام کاربری دوردست برای ssh. مقدار پیش‌فرض \(lqroot\(rq است. اطمینان حاصل کنید که کاربر دوردست قادر است دستور "btrfs" را با دسترسی‌های ریشه اجرا کند (برای جزئیات گزینه .I backend را ببینید). اگر روی \(lqno\(rq تنظیم شود، پیش‌فرض ssh استفاده می‌شود. .RE .sp \fBssh_compression\fP yes|no .RS 4 فشرده‌سازی اتصالات ssh را فعال یا غیرفعال می‌کند. مقدار پیش‌فرض \(lqno\(rq است. توجه داشته باشید که اگر .B stream_compress فعال باشد، فشرده‌سازی ssh همیشه برای عملیات‌های ارسال/دریافت غیرفعال خواهد بود. .RE .sp \fBssh_cipher_spec\fP default| .RS 4 مشخصات الگوریتم رمزنگاری (cipher) را برای رمزگذاری نشست انتخاب می‌کند (فهرستی از رمزها با کاما جدا شده به ترتیب اولویت). برای اطلاعات بیشتر به گزینه "\-c cipher_spec" در ssh(1) مراجعه کنید. مقدار پیش‌فرض \(lqdefault\(rq است (رمزهای مشخص‌شده در ssh_config(5)). .RE .SS "گزینه‌های جریان داده (Data Stream Options)" .sp \fBstream_compress\fP |no .RS 4 جریان ارسال btrfs را پیش از انتقال آن از/به مکان‌های دوردست فشرده می‌کند. مقدار پیش‌فرض \(lqno\(rq است. در صورت فعال بودن، اطمینان حاصل کنید که .I روی میزبان‌های مبدأ و مقصد در دسترس است. دستورات فشرده‌سازی پشتیبانی‌شده .RI ( ): gzip, pigz, bzip2, pbzip2, bzip3, xz, lzo, lz4, zstd. .RE .sp \fBstream_compress_level\fP default| .RS 4 سطح فشرده‌سازی برای دستور فشرده‌سازیِ مشخص‌شده .RI ( ). برای جزئیات به صفحه راهنمای مربوطه مراجعه کنید (معمولاً [1..9]، که در آن ۱ به معنای سریع‌ترین فشرده‌سازی است). مقدار پیش‌فرض \(lqdefault\(rq است (سطح فشرده‌سازی پیش‌فرض .IR ). .RE .sp \fBstream_compress_long\fP default| .RS 4 تطبیق فاصله طولانی (long distance matching) را برای .I مشخص‌شده فعال می‌کند. برای جزئیات به صفحه راهنمای مربوطه مراجعه کنید. تنها برای "zstd" پشتیبانی می‌شود. .RE .sp \fBstream_compress_threads\fP default| .RS 4 تعداد نخ‌ها (threads) برای استفاده در . تنها برای "pigz"، "pbzip2"، "bzip3"، "zstd" و نسخه‌های اخیر "xz" پشتیبانی می‌شود. .RE .sp \fBstream_compress_adapt\fP yes|no .RS 4 فشرده‌سازی تطبیقی را برای فعال می‌کند. تنها برای "zstd" (نسخه >= 1.3.6) پشتیبانی می‌شود. پیش‌فرض \(lqno\(rq است. .RE .sp \fBstream_buffer\fP |no .RS 4 یک بافر به جریان ارسال btrfs (به‌صورت محلی، روی داده‌های غیرفشرده) با حداکثر اندازه .I اضافه می‌کند. این کار می‌تواند در هر دو عملیات محلی یا دوردست بهبود سرعت (تا ۲۰٪ اندازه‌گیری‌شده) به همراه داشته باشد، اما بار سیستم را نیز افزایش می‌دهد. می‌توان پسوند "k"، "m"، "g" یا "%" را به .I اضافه کرد تا کیلوبایت (*1024)، مگابایت، گیگابایت، یا درصدی از کل حافظه فیزیکی را نشان دهد. پیش‌فرض \(lqno\(rq است. .sp در صورت فعال بودن، اطمینان حاصل کنید که دستور "mbuffer" (دست‌کم نسخه 20180505) روی میزبانی که btrbk را اجرا می‌کند در دسترس باشد. از زمان btrbk\-0.29.0، ابزار mbuffer(1) برای هر دو گزینه .I rate_limit و .I stream_buffer استفاده می‌شود: .sp .if n .RS 4 .nf .fam C mbuffer [\-m ] [\-r ] .fam .fi .if n .RE .sp توجه داشته باشید که mbuffer(1) همیشه مقادیر پیش‌فرض را از "\f(CR/etc/mbuffer.rc\fP" و "\f(CR~/.mbuffer.rc\fP" می‌خواند. .sp اگر دغدغه اصلی شما پایداری فرایند پشتیبان‌گیری است، این گزینه را غیرفعال بگذارید: اگرچه نسخه‌های اخیر mbuffer قابلیت اطمینان خود را ثابت کرده‌اند، اغلب مطلوب است که امور ساده نگه داشته شوند تا اینکه یک فرایند چندنخیِ اضافی به خط لوله دستور افزوده شود. .RE .sp \fBstream_buffer_remote\fP |no .RS 4 یک بافر روی میزبان‌های دوردست (مبدأ یا مقصد) اضافه می‌کند. پیش‌فرض \(lqno\(rq است. .sp اگر ترجیح می‌دهید بافرسازی در سمت دوردست یا حتی هر دو سمت انجام شود، این گزینه را فعال کنید: دلایل این انتخاب به حافظه موجود، عملکرد دیسک و پردازنده (ارسال/دریافت btrfs، فشرده‌سازی) و همچنین محدودیت‌های شبکه بستگی دارد. .RE .sp \fBrate_limit\fP |no .RS 4 نرخ خواندن جریان ارسال btrfs را به .I بایت بر ثانیه محدود می‌کند (به صورت محلی، روی جریان ارسال فشرده‌نشده). می‌توان یک پسوند "k"، "m"، "g" یا "t" برای نشان دادن کیلوبایت (*1024)، مگابایت و غیره اضافه کرد. پیش‌فرض \(lqno\(rq است. توجه داشته باشید که .I rate_limit به طور ضمنی یک بافر جریان اضافه می‌کند (گزینه .I stream_buffer در بالا را ببینید). .RE .sp \fBrate_limit_remote\fP |no .RS 4 محدودیت نرخ را روی میزبان‌های دوردست (مبدأ یا مقصد) اعمال می‌کند. پیش‌فرض \(lqno\(rq است. توجه داشته باشید که معمولاً فعال کردن هم‌زمان هر دو گزینه .I rate_limit و .I rate_limit_remote منطقی نیست. .RE .SS "گزینه‌های سیستم (System Options)" .sp \fBtransaction_log\fP |no .RS 4 در صورت تنظیم، تمام تراکنش‌ها (ایجاد اسنپ‌شات، ارسال\-دریافت زیرحجم، حذف زیرحجم) و همچنین پیام‌های لغو (abort) در قالب یک جدول فاصله‌بندی‌شده در ثبت می‌شوند: "localtime type status target_url source_url parent_url message". .RE .sp \fBtransaction_syslog\fP |no .RS 4 در صورت تنظیم، تمام تراکنش‌ها (همان‌طور که در .I transaction_log در بالا شرح داده شد) در syslog ثبت می‌شوند. نام برنامه مورد استفاده در پیام‌ها "btrbk" است. پارامترهای پذیرفته‌شده برای .IR : user, mail, daemon, auth, lpr, news, cron, authpriv, local0..local7. .RE .sp \fBlockfile\fP |no .RS 4 یک قفل انحصاری با استفاده از flock(2) روی در حین اجرای برنامه قرار می‌دهد. اگر قفل در اختیار فرایند دیگری باشد، برنامه پیش از اجرای هرگونه اقدامی خارج می‌شود. در حالت اجرای آزمایشی .RI ( \-n ، .IR \-\-dry\-run ) نادیده گرفته می‌شود. همچنین گزینه خط فرمان .I \-\-lockfile را ببینید. .RE .sp \fBbackend\fP .RS 4 ابزارهای پشتیبان سیستم‌فایل که برای عملیات‌های خاص btrfs استفاده می‌شوند. پشتیبان‌های (backends) موجود: .sp \fBbtrfs\-progs\fP .RS 4 پشتیبان پیش‌فرض؛ دستورات btrfs همان‌طور که در btrfs(8) مشخص شده فراخوانی می‌شوند (مانند "btrfs subvolume show"). .RE .sp \fBbtrfs\-progs\-btrbk\fP .RS 4 دستورات btrfs به جای فاصله با یک خط تیره از هم جدا می‌شوند (مانند "btrfs\-subvolume\-show" به جای "btrfs subvolume show"). برای تنظیم suid یا قابلیت‌های فایل (setcap) روی دستورات خاص btrfs مفید است، همان‌طور که در .URL "https://github.com/digint/btrfs\-progs\-btrbk" "" "." پیاده‌سازی شده است. .RE .sp \fBbtrfs\-progs\-sudo\fP .RS 4 دستورات btrfs با پیشوند "sudo \-n" همراه می‌شوند (مانند "sudo \-n btrfs subvolume show" به جای "btrfs subvolume show"). اطمینان حاصل کنید که دسترسی‌های مناسب (ریشه) برای گروه‌های دستوری "btrfs" و همچنین دستورات "readlink" و "test" در /etc/sudoers وجود داشته باشد. .RE .sp \fBbtrfs\-progs\-doas\fP .RS 4 مشابه btrfs\-progs\-sudo، با استفاده از پیشوند "doas \-n". .RE .sp اگر می‌خواهید این گزینه را فقط برای میزبان‌های محلی یا دوردست تنظیم کنید، .B backend_local یا .B backend_remote را مشخص کنید (مانند "backend_remote btrfs\-progs\-btrbk"). .sp اگر می‌خواهید این گزینه را فقط برای کاربر عادی (غیر ریشه) تنظیم کنید، .B backend_local_user را مشخص کنید. .RE .sp \fBcompat\fP .\|.\|.\| .RS 4 گزینه‌های سازگاری را فعال می‌کند. گزینه‌های سازگاری .RI ( compat\-option ) موجود: .sp \fBbusybox\fP .RS 4 استفاده از دستورات سازگار با busybox، به بهای سربار جزئی هنگام خواندن اطلاعات سیستم‌فایل. .RE .sp \fBignore_receive_errors\fP \fI*experimental*\fP .RS 4 به btrfs\-receive(8) دستور می‌دهد تا با تنظیم گزینه "\-\-max\-errors=0" هنگام بروز خطا متوقف نشود. در عوض، هشدارها را چاپ کند. .sp یک کاربرد شناخته‌شده برای این گزینه، میزبان‌های مقصدی هستند که از xattr پشتیبانی نمی‌کنند (مانند برخی از NASهای Synology)، در حالی که جریان ارسال شامل دستورات "lsetxattr" است. مورد دیگر مقصدهایی هستند که در تنظیم otime شکست می‌خورند و خطای "ERROR: attribute 12 requested but not present" می‌دهند. .sp توجه داشته باشید که \fBهیچ تضمینی وجود ندارد که پشتیبان‌های ایجادشده با فعال بودن این گزینه اصلاً قابل بازیابی باشند\fP. .RE .sp اگر می‌خواهید این گزینه را فقط برای میزبان‌های محلی یا دوردست تنظیم کنید، .B compat_local یا .B compat_remote را مشخص کنید (مانند "compat_remote busybox"). .RE .sp \fBcache_dir\fP .RS 4 در صورت تنظیم، نقشه‌های extent را برای دستور "btrbk extents" کش (ذخیره موقت) می‌کند. .RE .SS "گزینه‌های اختصاصی Btrfs (Btrfs Specific Options)" .sp \fBincremental_prefs\fP [:].\|.\|.\| .RS 4 اولویت‌ها را برای تعیین بهترین والد مشترک (همبسته) و منابع کلون (clone) برای پشتیبان‌های افزایشی، با انتخاب از فهرست‌های کاندیدای از پیش‌تعریف‌شده، مشخص می‌کند. .sp عبارت .I list\-spec مشخص می‌کند والد/منبع‌کلون بعدی از کدام فهرست کاندیدا باید به فهرست نتایج افزوده شود؛ .I amount تعداد را مشخص می‌کند (مانند "sro:1 sro:1" که هم‌ارز با "sro:2" است)، یا در صورت حذف، تمام موارد. هر کاندیدایی که از قبل در نتایج باشد کنار گذاشته می‌شود. .sp فهرست حاصل از زیرحجم‌ها سپس به عنوان پارامترهای دستور btrfs\-send(8) استفاده می‌شود: اولین مورد برای "\-p " و بقیه موارد برای "\-c ". .sp شناسه‌های .I list\-spec موجود (فهرست‌های کاندیدا = زیرمجموعه‌های فیلترشده از زیرحجم‌های همبسته): .sp \fBsro\fP,\fBsrn\fP .RS 4 تمام موارد از .I snapshot_dir منطبق با .IR snapshot_name ، با رابطه parent_uuid، مرتب‌شده بر اساس برچسب زمانی btrbk (حرف o=قدیمی‌تر، n=جدیدتر). .RE .sp \fBsao\fP,\fBsan\fP .RS 4 تمام موارد از .I snapshot_dir منطبق با .IR snapshot_name ، مرتب‌شده بر اساس برچسب زمانی btrbk (حرف o=قدیمی‌تر، n=جدیدتر). .RE .sp \fBaro\fP,\fBarn\fP .RS 4 تمام موارد از .IR incremental_resolve ، با رابطه parent_uuid، مرتب‌شده بر اساس cgen (حرف o=قدیمی‌تر، n=جدیدتر). .RE .sp مقدار پیش‌فرض "sro:1 srn:1 sao:1 san:1 aro:1 arn:1" است. توجه داشته باشید که برای بیشتر عملیات‌ها، مقدار پیش‌فرض به یک والد منفرد حل می‌شود، زیرا معمولاً اسنپ‌شات‌های جدیدتری وجود ندارد، و تمام "sro:1 sao:1 aro:1" به همان یک اسنپ‌شات منتهی می‌شوند. .sp مثال: "defaults,sao,san,aro,arn" مقادیر پیش‌فرض را می‌گیرد و منابع کلون را برای تمام (!) کاندیداهای شناخته‌شده در سیستم‌فایل اضافه می‌کند. .RE .sp \fBincremental_clones\fP yes|no .RS 4 در صورت فعال بودن، btrbk گزینه "\-c " را به دستور btrfs\-send(8) برای تمام زیرحجم‌های همبسته حل‌شده توسط .I incremental_prefs اضافه می‌کند. در صورت غیرفعال بودن، فقط "\-p " استفاده می‌شود. پیش‌فرض \(lqyes\(rq است. .RE .sp \fBincremental_resolve\fP mountpoint|directory .RS 4 مشخص می‌کند برای یافتن بهترین والد مشترک برای پشتیبان‌های افزایشی در کجا جستجو شود. اگر روی \(lqmountpoint\(rq تنظیم شود، از والدها در درخت سیستم‌فایلِ زیر نقطه اتصال دایرکتوری اسنپ‌شات و مقصد استفاده می‌کند. اگر روی \(lqdirectory\(rq تنظیم شود، از والدهای کاملاً زیر دایرکتوری‌های اسنپ‌شات/مقصد استفاده می‌کند. اگر با مشکلات دسترسی مواجه می‌شوید (زمانی که btrbk به عنوان ریشه اجرا نمی‌شود)، این را روی \(lqdirectory\(rq تنظیم کنید. پیش‌فرض \(lqmountpoint\(rq است. .RE .sp \fBbtrfs_commit_delete\fP yes|no .RS 4 در صورت تنظیم، در پایان حذف هر اسنپ‌شات یا پشتیبان، منتظر ثبت تراکنش (commit) می‌ماند (گزینه .I \-\-commit\-each را برای "btrfs subvolume delete" تنظیم می‌کند). پیش‌فرض \(lqno\(rq است. .RE .sp \fBsend_protocol\fP |no \fI*experimental*\fP .RS 4 استفاده از پروتکل ارسال btrfs نسخه N. اگر در .I target فعال شود، btrbk گزینه "\-\-proto " را به دستور btrfs\-send(8) اضافه می‌کند. پیش‌فرض \(lqno\(rq است (پیش‌فرض btrfs). .RE .sp \fBsend_compressed_data\fP yes|no \fI*experimental*\fP .RS 4 داده‌هایی را که روی سیستم‌فایل فشرده شده‌اند مستقیماً بدون خارج کردن از فشرده‌سازی ارسال می‌کند. این کار به نسخه پروتکل ۲ یا بالاتر (btrfs\-progs >= 5.19) نیاز دارد، و به طور ضمنی "send_protocol 2" را اعمال می‌کند. اگر در .I target فعال شود، btrbk گزینه "\-\-compressed\-data" را به دستور btrfs\-send(8) اضافه می‌کند. پیش‌فرض \(lqno\(rq است (پیش‌فرض btrfs). .RE .sp \fBsnapshot_qgroup_destroy\fP yes|no \fI*experimental*\fP .RS 4 .RE .sp \fBtarget_qgroup_destroy\fP yes|no \fI*experimental*\fP .RS 4 .RE .sp \fBarchive_qgroup_destroy\fP yes|no \fI*experimental*\fP .RS 4 هر زمان که یک زیرحجم حذف می‌شود، qgroup پیش‌فرض متناظر "\f(CR0/\fP" را نیز نابود می‌کند. تنها زمانی مفید است که پشتیبانی از سهمیه (quota) در btrfs را فعال کرده باشید. همچنین ببینید: .URL "https://bugzilla.kernel.org/show_bug.cgi?id=91751" "" "" .RE .SS "گزینه‌های اطلاع‌رسانی (Informative Options)" .sp \fBwarn_unknown_targets\fP yes|no .RS 4 در صورت تنظیم، چنانچه btrbk با یک زیرحجم مقصد در مکانی ناشناخته مواجه شود (یعنی از طرح نام‌گذاری btrbk پیروی نکند، یا خارج از دایرکتوری مقصد باشد)، یک هشدار چاپ می‌کند. مقدار پیش‌فرض \(lqno\(rq است. .RE .SH "سیاست نگهداری (RETENTION POLICY)" .sp سیاست‌های نگهداری به طور جداگانه برای اسنپ‌شات‌ها، پشتیبان‌ها و بایگانی‌ها (که در متن زیر به طور خلاصه «پشتیبان‌ها» نامیده می‌شوند)، با استفاده از ترکیبی از موارد زیر تعریف می‌شوند: .sp \fB*_preserve_min\fP all|latest|no|{h,d,w,m,y} .RS 4 مدت زمانی که در طول آن تمام پشتیبان‌ها نگهداری می‌شوند. .RE .sp \fB*_preserve\fP no| .RS 4 جدول زمانی (نقاط منفرد در زمان) که برای آن پشتیبان‌های منفرد نگهداری می‌شوند. .RE .sp توجه داشته باشید که اگر "preserve_min" روی \(lqall\(rq (پیش‌فرض) تنظیم شده باشد، هرگونه تنظیمی از "preserve" بدیهی است که اثری نخواهد داشت. .sp قالب .I به این صورت است: .sp .if n .RS 4 .nf .fam C [h] [d] [w] [m] [y] .fam .fi .if n .RE .sp \fBhourly\fP .RS 4 مشخص می‌کند که پشتیبان‌های ساعتی تا چند ساعت قبل باید نگهداری شوند. اولین پشتیبان یک ساعت، یک پشتیبان ساعتی محسوب می‌شود. .RE .sp \fBdaily\fP .RS 4 مشخص می‌کند که پشتیبان‌های روزانه تا چند روز قبل باید نگهداری شوند. اولین پشتیبان یک روز (شروع از .IR preserve_hour_of_day ) یک پشتیبان روزانه محسوب می‌شود. .RE .sp \fBweekly\fP .RS 4 مشخص می‌کند که پشتیبان‌های هفتگی تا چند هفته قبل باید نگهداری شوند. اولین پشتیبان روزانه ایجادشده در .I preserve_day_of_week (یا اولین پشتیبان در این هفته در صورتی که در آن روز دقیق پشتیبانی گرفته نشده باشد) به عنوان یک پشتیبان هفتگی در نظر گرفته می‌شود. .RE .sp \fBmonthly\fP .RS 4 مشخص می‌کند که پشتیبان‌های ماهانه تا چند ماه قبل باید نگهداری شوند. هر نخستین پشتیبان هفتگی در یک ماه، به عنوان یک پشتیبان ماهانه در نظر گرفته می‌شود. .RE .sp \fByearly\fP .RS 4 مشخص می‌کند که پشتیبان‌های سالانه تا چند سال قبل باید نگهداری شوند. هر نخستین پشتیبان ماهانه در یک سال، به عنوان یک پشتیبان سالانه در نظر گرفته می‌شود. .RE .sp از یک علامت ستاره (*) برای \(lqall\(rq استفاده کنید (به عنوان مثال "target_preserve 60d *m" بیان می‌کند: «پشتیبان‌های روزانه را برای ۶۰ روز قبل و تمام پشتیبان‌های ماهانه را نگهداری کن»). .sp نکته: btrbk را با گزینه .IR \-S ، .I \-\-print\-schedule اجرا کنید تا یک خروجی جامع از نتایج زمان‌بند به دست آورید. .SS "زمان مرجع (Reference Time)" .sp زمان محلی روی میزبانی که btrbk را اجرا می‌کند، زمان مرجع را برای تمام محاسبات تاریخ/زمان، به ویژه برای «آغاز یک روز»، و در نتیجه برای نخستین پشتیبان‌های روزانه، هفتگی، ماهانه یا سالانه مشخص می‌کند. زمان محلی روی میزبان‌های دوردست (مبدأ/مقصد ssh) هرگز استفاده نمی‌شود. .sp مگر اینکه "timestamp_format long\-iso" تنظیم شده باشد، پشتیبان‌های روزانه در "preserve_hour_of_day" (پیش‌فرض نیمه‌شب) منطقه زمانی مربوطه نگهداری می‌شوند (و نه در "00:00 UTC" که در هونولولو معادل "14:00" خواهد بود). این موضوع برای پیکربندی‌هایی با چندین نمونه btrbk اهمیت می‌یابد، مانند نمونه‌های متعدد فقط-اسنپ‌شات (پراکنده در سراسر جهان)، و یک نمونه فقط-دریافت روی سرور پشتیبان. .sp نکته مهم: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} اگر "timestamp_format long\-iso" تنظیم شده باشد، هر نمونه btrbk تفسیر متفاوتی از «نخستین در روز» دارد. اطمینان حاصل کنید که btrbk را با منطقه زمانی یکسان روی هر میزبان اجرا می‌کنید، مثلاً با تنظیم متغیر محیطی TZ (به tzset(3) مراجعه کنید). .RE .SH "انواع مقصد (TARGET TYPES)" .sp \fBsend\-receive\fP .RS 4 پشتیبان‌گیری در یک سیستم‌فایل btrfs، با استفاده از "btrfs send/receive". این نوع، مقصدِ توصیه‌شده (استاندارد) است. .I باید یک مسیر مطلق باشد و به یک زیرحجم یا دایرکتوری در یک سیستم‌فایل btrfs اشاره کند. به btrfs\-send(8) و btrfs\-receive(8) مراجعه کنید. .RE .sp \fBraw\fP \fI*experimental*\fP .RS 4 پشتیبان‌گیری در یک فایل خام (مستقل از سیستم‌فایل) از خروجی btrfs\-send(8)، همراه با فشرده‌سازی و رمزگذاری اختیاری. .sp توجه داشته باشید که سازوکار نگهداری مقصد در حال حاضر برای پشتیبان‌های خام افزایشی غیرفعال است (btrbk هیچ فایل خام افزایشی را حذف نمی‌کند)! .sp پشتیبان‌های خام از دو فایل تشکیل شده‌اند: فایل داده اصلی شامل جریان ارسال btrfs، و یک فایل جانبی ".info" حاوی فراداده: .sp .if n .RS 4 .nf .fam C .[_N].btrfs[.gz|.bz2|...][.gpg] .[_N].btrfs[.gz|.bz2|...][.gpg].info .fam .fi .if n .RE .sp برای پشتیبان‌های افزایشی .RI ( incremental "incremental yes")، لطفاً توجه داشته باشید که: .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} به محض اینکه یک فایل پشتیبان افزایشی .RI ( incremental ) از بین برود یا خراب شود، تمام پشتیبان‌های افزایشی بعدی نامعتبر می‌شوند، زیرا دیگر هیچ والد مشترکی برای تصاویر افزایشی بعدی وجود ندارد. این ممکن است سازش خوبی برای یک طرح پشتیبان‌گیری در زمان تعطیلات باشد، اما برای طولانی‌مدت اطمینان حاصل کنید که هر از گاهی یک پشتیبان غیر‌افزایشی گرفته شود. .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ . sp -1 . IP \(bu 2.3 .\} در حال حاضر هیچ پشتیبانی برای چرخش (rotation) پشتیبان‌های افزایشی وجود ندارد: اگر .I incremental تنظیم شده باشد، باید هر از گاهی یک پشتیبان کامل به صورت دستی گرفته شود تا بتوان پشتیبان‌های قدیمی را حذف کرد. .RE .sp گزینه‌های اضافی برای مقصدهای raw: .sp \fBraw_target_compress\fP |no .RS 4 الگوریتم فشرده‌سازی برای استفاده در مقصد پشتیبان خام. دستورات فشرده‌سازیِ پشتیبانی‌شده .RI ( ): gzip, pigz, bzip2, pbzip2, bzip3, xz, lzo, lz4, zstd. .RE .sp \fBraw_target_compress_level\fP default| .RS 4 سطح فشرده‌سازی برای مشخص‌شده. .RE .sp \fBraw_target_compress_long\fP default| .RS 4 فعال کردن تطبیق فاصله طولانی برای .IR . .RE .sp \fBraw_target_compress_threads\fP default| .RS 4 تعداد نخ‌ها برای استفاده در . .RE .sp \fBraw_target_split\fP |no .RS 4 تقسیم فایل پشتیبان خام به بخش‌هایی با اندازه .IR . .RE .sp \fBraw_target_block_size\fP .RS 4 اندازه بلوک برای نوشتن فایل پشتیبان خام. مقدار پیش‌فرض \(lq128K\(rq است. .RE .sp \fBraw_target_encrypt\fP gpg|openssl_enc|no .RS 4 در صورت فعال بودن، فایل خام مقصد را با استفاده از gpg یا openssl_enc رمزگذاری می‌کند. .RE .sp گزینه‌های اضافی برای "raw_target_encrypt gpg": .sp \fBgpg_keyring\fP .RS 4 دسته‌کلید (keyring) مورد استفاده برای gpg، مانند "\f(CR/etc/btrbk/gpg/pubring.kbx\fP". .RE .sp \fBgpg_recipient\fP .\|.\|.\| .RS 4 رمزگذاری برای شناسه کاربر .I (نشانی ایمیل). .RE .sp گزینه‌های اضافی برای "raw_target_encrypt openssl_enc" (\fIبسیار تجربی\fP): .sp \fBopenssl_ciphername\fP\~ .RS 4 پیش‌فرض \(lqaes\-256\-cbc\(rq است. .RE .sp \fBopenssl_iv_size\fP |no .RS 4 بستگی به رمز انتخاب‌شده دارد. .RE .sp \fBopenssl_keyfile\fP |no .RS 4 اشاره به یک فایل کلید در قالب هگزادسیمال (مسیر مطلق). مثال ایجاد فایل کلید (کلید ۲۵۶ بیتی): .sp .if n .RS 4 .nf .fam C # dd if=/dev/urandom bs=1 count=32 \(rs | od \-x \-A n \(rs | tr \-d "[:space:]" > /path/to/keyfile .fam .fi .if n .RE .RE .sp \fBkdf_backend\fP |no .RS 4 پشتیبان KDF که باید اجرا شود، مانند "\f(CR/usr/share/btrbk/scripts/kdf_pbkdf2.py\fP". .RE .sp \fBkdf_keysize\fP .RS 4 پیش‌فرض \(lq32\(rq است. .RE .sp \fBkdf_keygen\fP once|each .RS 4 پیش‌فرض \(lqonce\(rq است. .RE .RE .SH "دسترسی (AVAILABILITY)" .sp لطفاً برای جزئیات بیشتر به صفحه پروژه btrbk در \fB\c .URL "https://digint.ch/btrbk" "" "\fR" مراجعه کنید. .SH "همچنین ببینید (SEE ALSO)" .sp \fBbtrbk\fP(1) .SH "نویسنده (AUTHOR)" .sp Axel Burri \c .MTO "axel\(attty0.ch" "" ""