| borg-create(1) | ابزار پشتیبانگیری borg | borg-create(1) |
نام (NAME)
borg-create - ایجاد یک آرشیو جدید
خلاصه دستور (SYNOPSIS)
borg [گزینههای عمومی] create [گزینهها] ARCHIVE [PATH...]
توضیحات (DESCRIPTION)
این دستور یک آرشیو پشتیبان شامل تمامی فایلهای یافتشده حین پیمایش بازگشتی مسیرهای مشخصشده ایجاد میکند. مسیرها همانطور که مشخص شدهاند به آرشیو اضافه میشوند، به این معنی که اگر مسیرهای نسبی مد نظر باشد، دستور باید از پوشه صحیح اجرا شود.
شگرد نقطهاسلش در مسیرها (ریشههای بازگشتی) با استفاده از /./ فعال میشود: /this/gets/stripped/./this/gets/archived به معنای پردازش آن شیء در سیستمفایل است، اما پیشوند سمت چپ ./ از موارد آرشیوشده حذف خواهد شد (در این حالت، this/gets/archived مسیر شیء در آرشیو خواهد بود).
هنگام مشخص کردن '-' به عنوان مسیر، Borg دادهها را از ورودی استاندارد میخواند و فایلی با نام 'stdin' در آرشیو ایجاد میکند. در برخی موارد استفاده از --content-from-command مناسبتر است. برای جزئیات به بخش "خواندن از stdin" در زیر مراجعه کنید.
آرشیو برای فایلها یا بخشهایی از فایلها که قبلاً در آرشیوهای دیگر ذخیره شدهاند، تقریباً هیچ فضای دیسکی مصرف نمیکند.
نام آرشیو باید یکتا باشد. نباید به '.checkpoint' یا '.checkpoint.N' (که N عدد است) ختم شود، زیرا این نامها برای نقاط بازرسی استفاده شده و رفتار ویژهای با آنها میشود.
در نام آرشیو میتوانید از جانگهدارندههای زیر استفاده کنید: {now}، {utcnow}، {fqdn}، {hostname}، {user} و چند مورد دیگر.
سرعت پشتیبانگیری با پردازش نکردن مجدد فایلهایی که قبلاً در آرشیوهای موجود ذخیره شدهاند و تغییر نکردهاند، افزایش مییابد. تشخیص فایلهای تغییرنیافته با مقایسه فرادادههای فایل با مقادیر قبلی موجود در حافظه پنهان فایلها انجام میشود.
این مقایسه میتواند در حالتهای مختلفی که با --files-cache مشخص میشود عمل کند:
- ctime,size,inode (پیشفرض)
- mtime,size,inode (رفتار پیشفرض در نسخههای قدیمیتر از 1.1.0rc4)
- ctime,size (نادیده گرفتن شماره inode)
- mtime,size (نادیده گرفتن شماره inode)
- rechunk,ctime (همه فایلها تغییریافته تلقی میشوند - قطعهبندی مجدد، ذخیره ctime در کش)
- rechunk,mtime (همه فایلها تغییریافته تلقی میشوند - قطعهبندی مجدد، ذخیره mtime در کش)
- disabled (غیرفعالسازی کش فایلها، همه فایلها تغییریافته تلقی میشوند - قطعهبندی مجدد)
شماره inode: ایمنی بیشتر، اما اغلب ناپایدار در سیستمفایلهای شبکهای
در حالت عادی، تشخیص تغییر فایلها اطلاعات inode را در نظر میگیرد تا دقت تشخیص بهبود یابد. این مورد برای فایلهای روی SSHFS و سیستمهای فایل شبکهای مشابه که شماره inode پایداری ارائه نمیدهند مشکلساز است؛ چنین فایلهایی همیشه تغییریافته تلقی خواهند شد. در این موارد میتوانید از حالتهای بدون inode برای بهبود کارایی استفاده کنید، اما قابلیت اطمینان تشخیص ممکن است کاهش یابد.
مقایسه ctime در برابر mtime: ایمنی در برابر سرعت
- مقدار ctime روشی کاملاً ایمن برای تشخیص تغییرات فایل (فراداده و محتوا) است زیرا نمیتوان آن را از فضای کاربری تغییر داد. با این حال، حتی تغییر در فراداده نیز ctime را بهروز میکند، بنابراین ممکن است حتی بدون تغییر محتوا قطعهبندی/درهمسازی غیرضروری انجام شود. برخی سیستمهای فایل از ctime پشتیبانی نمیکنند. برای مثال، دستور chown یا chmod روی یک فایل، ctime آن را تغییر میدهد.
- مقدار mtime معمولاً به درستی کار میکند و تنها در صورت تغییر محتوای فایل بهروز میشود. اما mtime میتواند به دلخواه از فضای کاربری تنظیم شود، مثلاً برای بازگرداندن mtime به همان مقداری که قبل از تغییر محتوا داشت. این مورد میتواند برای اهداف مخرب یا حتی کاربردهای عادی استفاده شود، اما در هر دو حالت حالتهای کش مبتنی بر mtime میتوانند مشکلساز باشند.
گزینه --files-changed کنترل میکند که Borg چگونه تغییر فایل را در طول پشتیبانگیری تشخیص دهد:
- ctime (پیشفرض): استفاده از ctime برای تشخیص تغییرات. این ایمنترین گزینه است.
- mtime: استفاده از mtime برای تشخیص تغییرات.
- disabled: غیرفعالسازی کامل تشخیص تغییر فایل در طول پشتیبانگیری. این گزینه توصیه نمیشود مگر اینکه بدانید چه میکنید، زیرا در صورت تغییر فایلها در حین فرایند پشتیبانگیری میتواند منجر به ناسازگاری آرشیو شود.
نقاط اتصال سیستمهای فایل یا عکسهای لحظهای (snapshots) باید برای هر بار ایجاد آرشیو جدید یکسان باشد تا عملیات سریع تضمین شود، زیرا حافظه پنهان فایل از نامهای مطلق فایل استفاده میکند. اگر این امر امکانپذیر نیست، استفاده از bind mount در یک مکان پایدار را در نظر بگیرید.
گزینه --progress مقادیر داده اصلی، فشردهشده و یکتاشده (به ترتیب با حروف O، C و D)، سپس تعداد فایلهای پردازششده (N) و پس از آن مسیر فعلی در حال پردازش را نمایش میدهد.
هنگام استفاده از --stats آماری درباره میزان دادههای اضافهشده دریافت خواهید کرد - اندازه یکتاشده در بخش "This Archive" مهمترین است زیرا نشان میدهد مخزن چقدر رشد خواهد کرد. گزینه --quick-stats سریعتر است زیرا از آمار سرتاسری مخزن صرفنظر میکند. گزینههای --stats یا --quick-stats با --dry-run ناسازگار هستند زیرا در اجرای آزمایشی فشردهسازی و حذف دادههای تکراری انجام نمیشود.
برای راهنمایی بیشتر درباره الگوها، خروجی دستور borg_patterns را ببینید.
برای راهنمایی بیشتر درباره جانگهدارندهها، خروجی دستور borg_placeholders را ببینید.
گزینهها (OPTIONS)
برای گزینههای عمومی دستورات Borg به borg-common(1) مراجعه کنید.
آرگومانها (arguments)
گزینهها (options)
- -n, --dry-run
- آرشیو پشتیبان ایجاد نشود (اجرای آزمایشی)
- -s, --stats
- چاپ آمار مربوط به آرشیو ایجادشده
- --quick-stats
- چاپ تنها آمار آرشیو بدون محاسبه آمار سرتاسری مخزن
- --list
- خروجی مشروح از موارد پردازششده (فایلها، پوشهها، ...)
- --filter STATUSCHARS
- فقط نمایش مواردی با نویسههای وضعیت مشخصشده (توضیحات را ببینید)
- --json
- خروجی آمار در قالب JSON (به همراه --stats)
- --no-cache-sync
- آزمایشی: هماهنگسازی حافظه پنهان انجام نشود. به معنی عدم استفاده از کش فایلهاست.
- --stdin-name NAME
- استفاده از NAME در آرشیو برای دادههای ورودی استاندارد (پیشفرض: 'stdin')
- --stdin-user USER
- تنظیم کاربر USER در آرشیو برای دادههای ورودی استاندارد (پیشفرض: 'root')
- --stdin-group GROUP
- تنظیم گروه GROUP در آرشیو برای دادههای ورودی استاندارد (پیشفرض: 'wheel')
- --stdin-mode M
- تنظیم سطح دسترسی M در آرشیو برای دادههای stdin (پیشفرض: 0660)
- --content-from-command
- تفسیر PATH به عنوان دستور و ذخیره خروجی استاندارد آن
- --paths-from-stdin
- خواندن فهرست مسیرهای جداشده با جداکننده از stdin
- --paths-from-command
- تفسیر PATH به عنوان دستور و رفتار با خروجی آن همانند --paths-from-stdin
- --paths-delimiter DELIM
- تنظیم جداکننده مسیر برای --paths-from-stdin و --paths-from-command (پیشفرض: خط جدید)
گزینههای گنجاندن/استثنا کردن (Include/Exclude options)
- -e PATTERN, --exclude PATTERN
- مستثنی کردن مسیرهای منطبق با PATTERN
- --exclude-from EXCLUDEFILE
- خواندن الگوهای استثنا از EXCLUDEFILE (هر خط یک الگو)
- --pattern PATTERN
- گنجاندن یا استثنا کردن مسیرهای منطبق با PATTERN
- --patterns-from PATTERNFILE
- خواندن الگوهای گنجاندن/استثنا از PATTERNFILE
- --exclude-caches
- مستثنی کردن پوشههای دارای فایل CACHEDIR.TAG
- --exclude-if-present NAME
- مستثنی کردن پوشههایی که شیئی با نام NAME دارند
- --keep-exclude-tags
- در صورت استفاده از --exclude-if-present، خود شیء نشانهگذاریشده در آرشیو نگهداری شود
- --exclude-nodump
- مستثنی کردن فایلهای دارای نشان NODUMP
- --exclude-dataless
- مستثنی کردن فایلهای نشانهگذاریشده به عنوان DATALESS (در macOS)
گزینههای سیستمفایل (Filesystem options)
- -x, --one-file-system
- عدم خروج از سیستمفایل جاری و نادیده گرفتن نقاط اتصال سیستمفایلهای دیگر
- --numeric-owner
- منسوخشده، از --numeric-ids استفاده کنید
- --numeric-ids
- تنها ذخیره شناسههای عددی کاربر و گروه
- --noatime
- عدم ذخیره زمان دسترسی (atime) در آرشیو
- --atime
- ذخیره زمان دسترسی (atime) در آرشیو
- --noctime
- عدم ذخیره ctime در آرشیو
- --nobirthtime
- عدم ذخیره زمان ایجاد (birthtime) در آرشیو
- --nobsdflags
- منسوخشده، از --noflags استفاده کنید
- --noflags
- عدم خواندن و ذخیره پرچمهای فایل (مانند NODUMP یا IMMUTABLE)
- --noacls
- عدم خواندن و ذخیره فهرستهای کنترل دسترسی (ACL)
- --noxattrs
- عدم خواندن و ذخیره ویژگیهای توسعهیافته (xattrs)
- --sparse
- تشخیص حفرههای فایل خلوت (sparse holes)
- --files-cache MODE
- تنظیم حالت حافظه پنهان فایلها (پیشفرض: ctime,size,inode)
- --files-changed MODE
- تعیین نحوه تشخیص تغییر فایل در حین پشتیبانگیری (پیشفرض: ctime)
- --read-special
- خواندن فایلهای دستگاهی بلوکی و نویسهای و FIFOها همانند فایلهای عادی
گزینههای آرشیو (Archive options)
- --comment COMMENT
- افزودن یادداشت متنی به آرشیو
- --timestamp TIMESTAMP
- تنظیم دستی زمان ایجاد آرشیو (قالب UTC یا یک فایل مرجع)
- -c SECONDS, --checkpoint-interval SECONDS
- نوشتن نقطه بازرسی در هر فواصل ثانیهای مشخص (پیشفرض: ۱۸۰۰)
- --chunker-params PARAMS
- مشخص کردن پارامترهای قطعهبندی (الگوریتم، حداقل، حداکثر، بیتهای ماسک و اندازه پنجره)
- -C COMPRESSION, --compression COMPRESSION
- انتخاب الگوریتم فشردهسازی
مثالها (EXAMPLES)
# پشتیبانگیری از ~/Documents در آرشیوی به نام "my-documents"
$ borg create /path/to/repo::my-documents ~/Documents
# پشتیبانگیری به همراه فهرست کردن فایلها در حین پردازش
$ borg create --list /path/to/repo::my-documents ~/Documents
# پشتیبانگیری و حذف پیشوند مسیر با شگرد نقطهاسلش
$ borg create /path/to/repo::docs /mnt/disk/./docs
# پشتیبانگیری و مستثنی کردن فایلهای pyc
$ borg create /path/to/repo::my-files \
~/Documents \
~/src \
--exclude '*.pyc'
# پشتیبانگیری از ریشه سیستمفایل و استفاده از فشردهسازی zlib
$ borg create -C zlib,6 --one-file-system /path/to/repo::root-{now:%Y-%m-%d} /
# پشتیبانگیری به سمت سرور دوردست از طریق SSH
$ borg create ssh://borg@backup.example.org:2222/path/to/repo::{fqdn}-root-{now} /
# پشتیبانگیری بدون فشردهسازی
$ borg create --compression none /path/to/repo::arch ~
# پشتیبانگیری با فشردهسازی پیشفرض و بسیار سریع (lz4)
$ borg create /path/to/repo::arch ~
# فشردهسازی قویتر با lzma
$ borg create --compression lzma,9 /path/to/repo::arch ~
# استفاده از خروجی find برای انتخاب فایلها
$ find ~ -size -1000k | borg create --paths-from-stdin /path/to/repo::small-files-only
یادداشتها (NOTES)
الگوهای --exclude با دستور tar متفاوت است؛ برای نمونه باید از --exclude '*/.bundler/gems' برای تطبیق مسیرها استفاده کنید.
گزینه -x یا --one-file-system پوشههایی را که نقاط اتصال سیستمفایلهای دیگر هستند مستثنی میکند. این کار با مقایسه شماره دستگاه در خروجی دستور stat انجام میشود.
مدیریت خطا (Error handling)
هنگامی که Borg با فایلی مواجه میشود که قابل خواندن نیست (مثلاً عدم دسترسی)، پیامی هشدار در لاگ ثبت میکند، از آن فایل صرفنظر کرده و به کار ادامه میدهد و در پایان با کد هشدار خارج میشود تا یک فایل مانع کل پشتیبانگیری نشود.
پرچمهای وضعیت موارد (Item flags)
در خروجی --list حروف زیر نشاندهنده وضعیت فایل هستند:
نویسههای کوچک نشاندهنده سایر انواع شیء هستند:
خواندن دادههای پشتیبان از stdin
میتوان مسیر را '-' تعیین کرده و مستقیماً داده را پایپ کرد یا از --content-from-command استفاده نمود که تضمین میکند در صورت شکست دستور تولیدکننده داده، آرشیو ناقص ساخته نشود.
همچنین ببینید (SEE ALSO)
borg-common(1), borg-delete(1), borg-prune(1), borg-check(1), borg-patterns(1), borg-placeholders(1), borg-compression(1)
نویسندگان (Author)
The Borg Collective
| 2026-07-18 |