borg-check(1) ابزار پشتیبان‌گیری borg borg-check(1)

borg-check - بررسی صحت و یکپارچگی مخزن یا بایگانی‌های Borg

borg [گزینه‌های عمومی] check [گزینه‌ها] [REPOSITORY_OR_ARCHIVE]

دستور check صحت و یکپارچگی یک مخزن و بایگانی‌های آن را بررسی می‌کند. این فرآیند شامل دو مرحله اصلی است:

1.
بررسی یکپارچگی خود مخزن. این شامل بررسی هدرهای جادویی (magic headers) قطعات (segments) و همچنین متاداده و داده‌های تمام اشیاء درون قطعات است. داده‌های خوانده‌شده از نظر اندازه و CRC بررسی می‌شوند. پوسیدگی بیت (Bit rot) و سایر انواع آسیب‌های تصادفی را می‌توان از این طریق شناسایی کرد. اجرای بررسی مخزن را می‌توان با استفاده از --max-duration به چندین بررسی جزئی تقسیم کرد. هنگام بررسی یک مخزن دوردست (remote)، لطفاً توجه داشته باشید که بررسی‌ها روی سرور اجرا می‌شوند و ترافیک شبکه قابل‌توجهی ایجاد نمی‌کنند.
2.
بررسی یکپارچگی و صحت متاداده بایگانی و در صورت تمایل داده‌های بایگانی (نیازمند --verify-data). این شامل اطمینان از وجود مانیفست مخزن، موجود بودن قطعه متاداده بایگانی، و وجود تمامی قطعات ارجاع‌دهنده به فایل‌ها (آیتم‌ها) در بایگانی است. این کار نیازمند خواندن متاداده بایگانی و فایل است، اما نه داده‌ها. برای اعتبارسنجی رمزنگاری‌شده یکپارچگی داده‌های (محتوای) فایل، گزینه --verify-data را ارسال کنید، اما به یاد داشته باشید که این کار نیازمند خواندن تمام داده‌ها بوده و بنابراین بسیار زمان‌بر است. هنگام بررسی بایگانی‌های یک مخزن دوردست، بررسی‌های بایگانی بر روی ماشین کلاینت اجرا می‌شوند زیرا نیازمند رمزگشایی داده‌ها و بنابراین کلید رمزگذاری هستند.

هر دو مرحله را می‌توان به‌صورت مستقل نیز اجرا کرد. گزینه --repository-only را برای اجرای صرفاً بررسی‌های مخزن، یا --archives-only را برای اجرای صرفاً بررسی‌های بایگانی ارسال کنید.

گزینه --max-duration می‌تواند برای تقسیم یک بررسی طولانی‌مدت مخزن به چندین بررسی جزئی استفاده شود. پس از تعداد ثانیه‌های مشخص‌شده، بررسی متوقف می‌شود. بررسی جزئی بعدی از جایی که بررسی قبلی متوقف شده بود ادامه می‌یابد، تا زمانی که کل مخزن بررسی شود. با فرض اینکه یک بررسی کامل ۷ ساعت طول بکشد، اجرای یک بررسی روزانه با --max-duration=3600 (۱ ساعت) منجر به یک بررسی کامل مخزن در هفته خواهد شد. انجام یک بررسی کامل مخزن، هرگونه بررسی جزئی قبلی را لغو می‌کند؛ بررسی جزئی بعدی از ابتدا دوباره آغاز خواهد شد. با بررسی‌های جزئی مخزن، نه می‌توانید بررسی‌های بایگانی را اجرا کنید و نه حالت تعمیر (repair) را فعال نمایید. در نتیجه، اگر می‌خواهید از --max-duration استفاده کنید، باید --repository-only را نیز ارسال کرده و نباید --archives-only یا --repair را ارسال کنید.

هشدار: لطفاً توجه داشته باشید که بررسی‌های جزئی مخزن (یعنی اجرا با --max-duration) فقط می‌توانند بررسی‌های جمع‌آزمایی (checksum) غیررمزنگاری روی فایل‌های قطعه انجام دهند. یک بررسی کامل مخزن (یعنی بدون --max-duration) می‌تواند بررسی شاخص (index) مخزن را نیز انجام دهد. فعال کردن بررسی‌های جزئی مخزن به همین دلیل بررسی‌های بایگانی را مستثنی می‌کند. بنابراین بررسی‌های جزئی تنها ممکن است برای مخازن بسیار بزرگ که بررسی کامل آن‌ها زمان زیادی می‌برد مفید باشد.

گزینه --verify-data یک اعتبارسنجی یکپارچگی کامل از داده‌ها (در مقابل بررسی CRC32 قطعه) انجام می‌دهد، به این معنی که داده‌ها را از مخزن می‌خواند، آن‌ها را رمزگشایی و از حالت فشرده خارج می‌کند. این یک اعتبارسنجی رمزنگاری کامل است و بنابراین بسیار زمان‌بر است، اما هرگونه خرابی تصادفی و مخرب را شناسایی می‌کند. مقاومت در برابر دستکاری (Tamper-resistance) تنها برای مخازن رمزگذاری‌شده در برابر مهاجمان فاقد دسترسی به کلیدها تضمین می‌شود. شما نمی‌توانید از --verify-data به‌همراه --repository-only استفاده کنید.

دستور check به‌طور پیش‌فرض یک وظیفه فقط‌خواندنی است. در صورت مشاهده هرگونه خرابی، Borg مشکل را گزارش داده و به بررسی ادامه می‌دهد. برای تعمیر واقعی مشکلات یافت‌شده، --repair را ارسال کنید.

توجه:

--repair یک قابلیت بالقوه خطرناک است و ممکن است منجر به از دست رفتن داده‌ها شود! این فقط شامل داده‌هایی نمی‌شود که در هر حال از قبل از بین رفته بودند، بلکه ممکن است برای انواع خرابی‌هایی که قادر به رسیدگی به آن‌ها نیست، شامل داده‌های بیشتری شود. بسیار مراقب باشید!

پیرو هشدار قبلی، همچنین اکیداً توصیه می‌شود که قابلیت اطمینان سخت‌افزار اجراکننده Borg را با نرم‌افزارهای تست استرس (stress testing) آزمایش کنید. این به‌ویژه شامل آزمون‌گرهای حافظه و فضای ذخیره‌سازی است. سخت‌افزار غیرقابل اعتماد ممکن است منجر به از دست رفتن داده‌های بیشتری شود.

اکیداً توصیه می‌شود پیش از اجرا در حالت تعمیر (یعنی اجرا با --repair)، یک نسخه پشتیبان از مخزن خود تهیه کنید.

حالت تعمیر تلاش خواهد کرد هرگونه خرابی یافت‌شده را برطرف کند. رفع خرابی‌ها به معنای بازیابی داده‌های از دست رفته نیست: Borg نمی‌تواند داده‌های از دست رفته به دلیل مثلاً نقص سخت‌افزاری را به‌طور معجزه‌آسا بازیابی کند. تعمیر یک مخزن به معنای فدا کردن بخشی از داده‌ها به خاطر کلیت مخزن و داده‌های باقی‌مانده است. از این رو، طبق تعریف، این یک وظیفه بالقوه توأم با اتلاف داده (lossy) است.

در عمل، حالت تعمیر به هر دو بخش بررسی مخزن و بایگانی متصل می‌شود:

1.
هنگام بررسی یکپارچگی مخزن، حالت تعمیر سعی خواهد کرد تا حد امکان اشیاء را از قطعات دارای خطاهای یکپارچگی بازیابی کند، و اطمینان حاصل کند که شاخص با داده‌های ذخیره‌شده در قطعات سازگار است.
2.
هنگام بررسی یکپارچگی و صحت بایگانی‌ها، اگر قطعه متاداده یک بایگانی خراب یا مفقود شده باشد، حالت تعمیر ممکن است کل آن بایگانی را از مانیفست حذف کند. در سطح قطعه (یعنی محتویات فایل‌ها)، حالت تعمیر قطعات خراب یا مفقود را با قطعه جایگزین هم‌اندازه‌ای از صفرها جایگزین می‌کند. اگر قطعه‌ای که قبلاً با صفر جایگزین شده بود دوباره ظاهر شود، حالت تعمیر آن قطعه گمشده را با استفاده از قطعه جدید بازیابی خواهد کرد. در نهایت، حالت تعمیر همچنین قطعات یتیم (orphaned chunks) را (مثلاً ناشی از خطاهای خواندن هنگام ایجاد بایگانی) حذف خواهد کرد.

بیشتر مراحل انجام‌شده توسط حالت تعمیر یک اثر یک‌باره بر روی مخزن دارند، مانند حذف یک بایگانی گمشده از مخزن. با این حال، جایگزین کردن یک قطعه خراب یا گم‌شده با یک جایگزین تماماً صفر، اثری ادامه‌دار بر روی مخزن خواهد داشت: هنگام تلاش برای استخراج فایلی که به یک قطعه تماماً صفر ارجاع می‌دهد، دستور extract به‌طور واضح در مورد آن هشدار می‌دهد. سیستم فایل FUSE ایجادشده توسط دستور mount از خواندن چنین فایل «وصله‌شده با صفر» (zero-patched) خودداری می‌کند مگر اینکه یک گزینه اتصال ویژه مشخص شده باشد.

همان‌طور که قبلاً ذکر شد، اگر تمام قطعات از دست رفته قبلی یک فایل «وصله‌شده با صفر» دوباره ظاهر شوند (مثلاً از طریق یک پشتیبان‌گیری بعدی)، Borg ممکن است بتواند در حالت تعمیر آن فایل را «التیام» (heal) دهد. این کار از طریق نه‌تنها ردگیری قطعات جایگزین تماماً صفر، بلکه با نگهداری متاداده درباره قطعات گمشده توسط Borg انجام می‌شود. در حالت تعمیر، Borg بررسی می‌کند که آیا یک قطعه گمشده قبلی دوباره ظاهر شده است یا خیر و قطعه جایگزین تماماً صفر را با قطعه بازیافته جایگزین می‌کند. اگر تمام قطعات گمشده یک فایل وصله‌شده با صفر دوباره ظاهر شوند، این کار در عمل فایل را التیام می‌بخشد. در نتیجه، اگر قطعات گمشده قبلاً تعمیر شده بودند، توصیه می‌شود پس از ایجاد چند نسخه پشتیبان جدید، --repair را برای بار دوم اجرا کنید.

برای مشاهده گزینه‌های عمومی دستورات Borg، به borg-common(1) مراجعه کنید.

مخزن یا بایگانی برای بررسی صحت و یکپارچگی آن

صرفاً بررسی‌های مخزن انجام شود
صرفاً بررسی‌های بایگانی‌ها انجام شود
انجام اعتبارسنجی رمزنگاری یکپارچگی داده‌های بایگانی (در تضاد با --repository-only)
تلاش برای تعمیر هرگونه ناهمخوانی و خرابی یافت‌شده
کارکرد آهسته‌تر، اما با مصرف فضای کمتر
انجام صرفاً یک بررسی جزئی مخزن حداکثر تا SECONDS ثانیه (پیش‌فرض: نامحدود)

تنها در نظر گرفتن نام‌های بایگانی که با این پیشوند آغاز می‌شوند. (منسوخ‌شده)
تنها در نظر گرفتن نام‌های بایگانی منطبق با الگوی glob. قواعد sh: اعمال می‌شوند (بدون استفاده واقعی از پیشوند sh:)، به "borg help patterns" مراجعه کنید.
فهرستی از کلیدهای مرتب‌سازی جداشده با کاما؛ کلیدهای معتبر عبارتند از: timestamp، archive، name، id؛ پیش‌فرض: timestamp
در نظر گرفتن N بایگانی اول پس از اعمال سایر فیلترها
در نظر گرفتن N بایگانی آخر پس از اعمال سایر فیلترها

borg-common(1)

The Borg Collective

2026-07-18