.\" Man page generated from reStructuredText .\" by the Docutils 0.22.4 manpage writer. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "borg-serve" "1" "2026-07-18" "" "ابزار پشتیبان‌گیری borg" .SH "نام (NAME)" borg-serve \- اجرای borg در حالت کارگزار برای دسترسی از راه دور .SH "خلاصه دستور (SYNOPSIS)" .sp borg [گزینه‌های عمومی] serve [گزینه‌ها] .SH "توضیحات (DESCRIPTION)" .sp این دستور یک فرآیند کارگزار (سرور) مخزن را آغاز می‌کند. این دستور معمولاً به‌صورت دستی استفاده نمی‌شود. .SH "گزینه‌ها (OPTIONS)" .sp برای گزینه‌های عمومی دستورات Borg به \fIborg\-common(1)\fP مراجعه کنید. .SS "گزینه‌ها (options)" .INDENT 0.0 .TP .BI \-\-restrict\-to\-path \ PATH محدود کردن دسترسی مخزن به PATH. می‌توان چندین بار این گزینه را تعیین کرد تا به کلاینت اجازه دسترسی به چندین دایرکتوری داده شود. دسترسی به تمام زیرپوشه‌ها به‌طور ضمنی اعطا می‌شود؛ نیازی نیست PATH مستقیماً به یک مخزن اشاره کند. .TP .BI \-\-restrict\-to\-repository \ PATH محدود کردن دسترسی مخزن. فقط مخزن واقع در PATH (هیچ زیرپوشه‌ای در نظر گرفته نمی‌شود) قابل دسترسی است. می‌توان چندین بار این گزینه را تعیین کرد تا به کلاینت اجازه دسترسی به چندین مخزن داده شود. برخلاف \fB\-\-restrict\-to\-path\fP زیرپوشه‌ها قابل دسترسی نیستند؛ PATH باید مستقیماً به مکان یک مخزن اشاره کند. PATH ممکن است یک پوشه خالی باشد یا آخرین بخش PATH ممکن است وجود نداشته باشد، که در این صورت کلاینت می‌تواند یک مخزن در آنجا ایجاد کند. .TP .B \-\-append\-only فقط اجازه افزودن به فایل‌های قطعه مخزن داده شود. توجه داشته باشید که این گزینه فقط بر ساختار سطح پایین مخزن تأثیر می‌گذارد و اجرای \fIdelete\fP یا \fIprune\fP یا خواندن از مخزن همچنان مجاز خواهد بود. برای جزئیات بیشتر به \fIappend_only_mode\fP در یادداشت‌های تکمیلی (Additional Notes) مراجعه کنید. .TP .BI \-\-storage\-quota \ QUOTA تنظیم سهمیه ذخیره‌سازی مخزن (نسبت به تنظیمات سهمیه خود مخزن اولویت دارد) (مانند 5G، 1.5T). هنگامی که مخزن جدیدی ایجاد می‌شود، سهمیه ذخیره‌سازی روی مخزن جدید نیز تنظیم می‌شود. پیش‌فرض: بدون سهمیه. .UNINDENT .SH "مثال‌ها (EXAMPLES)" .sp دستور \fBborg serve\fP دارای پشتیبانی ویژه‌ای از دستورات اجباری SSH (forced commands) است (مثال \fBauthorized_keys\fP در زیر را ببینید): اگر متغیر محیطی SSH_ORIGINAL_COMMAND تنظیم شده باشد، این دستور از برخی گزینه‌های ارائه‌شده در خط فرمان صرف‌نظر کرده و به‌جای آن مقادیر متغیر را به کار می‌برد. این رفتار تنها بر روی یک فهرست مجاز با نظارت دقیق از گزینه‌های ایمن اعمال می‌شود. این فهرست در حال حاضر شامل موارد زیر است: .INDENT 0.0 .IP \(bu 2 گزینه‌هایی که سطح لاگ و موضوعات اشکال‌زدایی چاپی را کنترل می‌کنند، مانند \fB\-\-verbose\fP\c ، \fB\-\-info\fP\c ، \fB\-\-debug\fP\c ، \fB\-\-debug\-topic\fP و غیره. .IP \(bu 2 گزینه \fB\-\-lock\-wait\fP برای اینکه به کلاینت اجازه دهد مدت‌زمان انتظار پیش از انصراف و لغو عملیات (در زمانی که فرآیند دیگری قفل را نگه داشته است) را کنترل کند. .UNINDENT .sp متغیرهای محیطی (مانند BORG_XXX) موجود در دستور اصلی ارسال‌شده توسط کلاینت تفسیر \fIنمی‌شوند\fP؛ آن‌ها نادیده گرفته می‌شوند. اگر نیاز باشد متغیرهای محیطی BORG_XXX در سمت \fBborg serve\fP تنظیم شوند، باید در مکان‌های سیستمی ویژه مانند \fB/etc/environment\fP یا در خود دستور اجباری تنظیم گردند (مثال زیر). .INDENT 0.0 .INDENT 3.5 .sp .EX # اجازه دادن به یک جفت کلید SSH فقط برای اجرای borg و دسترسی انحصاری به /path/to/repo. # استفاده از گزینه‌های کلید برای غیرفعال‌سازی قابلیت‌های غیرضروری و بالقوه خطرناک SSH. # این کار به ایمن‌سازی یک سیستم خودکار پشتیبان‌گیری از راه دور کمک می‌کند. $ cat ~/.ssh/authorized_keys command=\(dqborg serve \-\-restrict\-to\-path /path/to/repo\(dq,restrict ssh\-rsa AAAAB3[...] # تنظیم یک متغیر محیطی BORG_XXX در سمت \(ga\(gaborg serve\(ga\(ga. $ cat ~/.ssh/authorized_keys command=\(dqBORG_XXX=value borg serve [...]\(dq,restrict ssh\-rsa [...] .EE .UNINDENT .UNINDENT .sp \fBنکته:\fP .INDENT 0.0 .INDENT 3.5 مثال‌های فوق از دستورالعمل \fBrestrict\fP استفاده کرده و فرض می‌کنند که یک پوسته سازگار با استاندارد POSIX به عنوان پوسته ورود کاربر تنظیم شده است. این کار قابلیت‌های بالقوه خطرناک SSH را به‌طور خودکار مسدود می‌کند، حتی اگر این قابلیت‌ها در به‌روزرسانی‌های آینده اضافه شوند. بنابراین، استفاده از این گزینه ارجحیت دارد. .sp اما اگر از OpenSSH server < 7.2 استفاده می‌کنید، باید قابلیت‌های SSH مورد نظر برای محدودسازی را صراحتاً تعیین کنید و نمی‌توانید صرفاً از گزینه \fBrestrict\fP استفاده کنید چرا که این گزینه در نسخه 7.2 معرفی شده است. ما توصیه می‌کنیم در این حالت از \fBno\-port\-forwarding,no\-X11\-forwarding,no\-pty,no\-agent\-forwarding,no\-user\-rc\fP استفاده کنید. .UNINDENT .UNINDENT .sp جزئیات درباره نحوه استفاده از sshd: sshd(8) \% .SS "پیکربندی SSH (SSH Configuration)" .sp پایپ‌های \fBborg serve\fP (\fBstdin\fP/\fBstdout\fP/\fBstderr\fP) در سمت سرور به فرآیند \fBsshd\fP متصل هستند. در صورتی که اتصال SSH بین \fBborg serve\fP و کلاینت قطع شود یا به شکلی غیرعادی گیر کند (برای مثال به دلیل قطعی شبکه)، ممکن است زمان زیادی طول بکشد تا \fBsshd\fP متوجه قطع اتصال کلاینت شود. در این فاصله، \fBsshd\fP همچنان به کار خود ادامه می‌دهد و در نتیجه فرآیند \fBborg serve\fP نیز که قفل مخزن را در دست دارد باز می‌ماند. این موضوع می‌تواند باعث ناموفق شدن عملیات بعدی \fBborg\fP روی مخزن از راه دور با خطای \fBFailed to create/acquire the lock\fP\& شود. .sp جهت جلوگیری از بروز این مشکل، پیشنهاد می‌شود پیکربندی اضافی زیر برای SSH انجام شود: .sp در فایل \fB~/.ssh/config\fP یا در فایل \fB/etc/ssh/ssh_config\fP سمت کلاینت: .INDENT 0.0 .INDENT 3.5 .sp .EX Host backupserver ServerAliveInterval 10 ServerAliveCountMax 30 .EE .UNINDENT .UNINDENT .sp عبارت \fBbackupserver\fP را با نام میزبان، FQDN یا نشانی IP سرور Borg جایگزین کنید. .sp این تنظیم باعث می‌شود کلاینت هر ۱۰ ثانیه یک بسته نگه‌دارنده اتصال (keepalive) به سرور ارسال کند. اگر ۳۰ بار متوالی نگه‌دارنده اتصال بدون دریافت پاسخ ارسال شود (مدت‌زمان ۳۰۰ ثانیه)، فرآیند کلاینت SSH خاتمه یافته و در نتیجه فرآیند Borg نیز به صورت منظم پایان می‌یابد. .sp در فایل پیکربندی \fBsshd\fP سمت سرور (معمولاً \fB/etc/ssh/sshd_config\fP\c ): .INDENT 0.0 .INDENT 3.5 .sp .EX ClientAliveInterval 10 ClientAliveCountMax 30 .EE .UNINDENT .UNINDENT .sp این تنظیم موجب می‌شود که سرور هر ۱۰ ثانیه یک بسته نگه‌دارنده اتصال به کلاینت بفرستد. در صورتی که ۳۰ نگه‌دارنده متوالی بدون پاسخ ارسال شود (مدت ۳۰۰ ثانیه)، فرآیند sshd سرور متوقف می‌شود و در نتیجه فرآیند \fBborg serve\fP به شکل مناسب خاتمه یافته و قفل مخزن را آزاد می‌نماید. .sp اگر پس از آن دستورات Borg را با \fB\-\-lock\-wait 600\fP اجرا کنید، این زمان کافی را به فرآیندهای \fBborg serve\fP می‌دهد تا پس از قطع اتصال SSH و سپری شدن ۳۰۰ ثانیه انتظار برای شکست نگه‌دارنده‌ها، به کار خود پایان دهند. .sp شما مطمئناً می‌توانید مقادیر مهلت زمانی نشان‌داده‌شده در بالا را به مقادیری متناسب با محیط و کاربرد خود تغییر دهید. .sp هنگامی که کلاینت قابل اعتماد نیست، ایده خوبی است که پوسته کاربر پشتیبان‌گیری را به یک پیاده‌سازی ساده تنظیم کنید (مسیر \fB/bin/sh\fP تنها یک مثال است و ممکن است چنین پیاده‌سازی ساده‌ای باشد یا نباشد): .INDENT 0.0 .INDENT 3.5 .sp .EX chsh \-s /bin/sh BORGUSER .EE .UNINDENT .UNINDENT .sp از آنجا که پوسته پیکربندی‌شده توسط openssh \% برای اجرای دستور پیکربندی‌شده از طریق فایل \fBauthorized_keys\fP با استفاده از \fB\(dq$SHELL\(dq \-c \(dq$COMMAND\(dq\fP استفاده می‌شود، تعیین یک پیاده‌سازی حداقلی پوسته در مقایسه با زمانی که یک پیاده‌سازی پیچیده و دارای ویژگی‌های فراوان به کار گرفته شود، سطح حمله را کاهش می‌دهد. .SH "همچنین ببینید (SEE ALSO)" .sp \fIborg\-common(1)\fP .SH "نویسندگان (AUTHORS)" The Borg Collective .\" End of generated man page.