'\" t .\" Title: vfs_shadow_copy2 .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 08/16/2026 .\" Manual: System Administration tools .\" Source: Samba 4.24.6 .\" Language: English .\" .TH "VFS_SHADOW_COPY2" "8" "08/16/2026" "Samba 4\&.24\&.6" "System Administration tools" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "نام (NAME)" vfs_shadow_copy2 \- نمایش اسنپ‌شات‌ها به عنوان رونوشت سایه (shadow copies) به کلاینت‌های ویندوز .SH "خلاصه دستور (SYNOPSIS)" .HP \w'\ 'u vfs objects = shadow_copy2 .SH "توضیحات (DESCRIPTION)" .PP این ماژول VFS بخشی از مجموعه \fBsamba\fR(7) است\&. .PP ماژول VFS با نام vfs_shadow_copy2 قابلیتی مشابه سرویس‌های Shadow Copy مایکروسافت ارائه می‌دهد\&. در صورت پیکربندی مناسب، این ماژول به کلاینت‌های مایکروسافت اجازه می‌دهد اسنپ‌شات‌های سیستم‌فایل را به صورت \(lqرونوشت‌های سایه\(rq در اشتراک‌های سامبا مرور کنند\&. .PP این دومین پیاده‌سازی از ماژول shadow copy است که ویژگی‌های اضافی زیر را (در مقایسه با ماژول اصلی \fBshadow_copy\fR(8)) دارد: .RS .sp .RS 4 .ie n \{\ \h'-04' 1.\h'+01'\c .\} .el \{\ .sp -1 .IP " 1." 4.2 .\} دیگر نیازی به پر کردن دایرکتوری ریشه اشتراک با پیوندهای نمادین (symlinks) به اسنپ‌شات‌ها در صورت ذخیره اسنپ‌شات‌ها در جای دیگر نیست\&. در عوض، می‌توانید ماژول را به‌صورت انعطاف‌پذیر پیکربندی کنید که اسنپ‌شات‌ها را در کجا جستجو کند\&. این قابلیت زمانی که هزاران اشتراک دارید یا از [homes] استفاده می‌کنید بسیار مهم است\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 2.\h'+01'\c .\} .el \{\ .sp -1 .IP " 2." 4.2 .\} دایرکتوری‌های اسنپ‌شات نیازی به قرار گرفتن در یک مکان مرکزی ثابت ندارند و می‌توانند در هر کجای درخت دایرکتوری مستقر باشند\&. این حالت به پشتیبانی از سیستم‌فایل‌هایی که از زیردرخت‌های خاص اسنپ‌شات می‌گیرند (مانند مجموعه‌های مستقل فایل GPFS) کمک می‌کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 3.\h'+01'\c .\} .el \{\ .sp -1 .IP " 3." 4.2 .\} نام‌گذاری دلخواه برای اسنپ‌شات‌ها: اسنپ‌شات‌ها می‌توانند با هر قالبی که با تبدیلات str[fp]time سازگار باشد نام‌گذاری شوند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 4.\h'+01'\c .\} .el \{\ .sp -1 .IP " 4." 4.2 .\} برچسب‌های زمانی را می‌توان به جای UTC بر حسب زمان محلی (localtime) نمایش داد\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 5.\h'+01'\c .\} .el \{\ .sp -1 .IP " 5." 4.2 .\} شماره inode فایل‌ها را می‌توان به صورت اختیاری تغییر داد تا با شماره اصلی متفاوت باشد\&. این کار باعث می‌شود دکمه \(cqrestore\(cq در رابط گرافیکی ویندوز بدون خطای نقض اشتراک‌گذاری (sharing violation) هنگام ارائه از سیستم‌فایل‌هایی مانند GPFS (که شماره دستگاه و inode یکسانی برای فایل اسنپ‌شات و فایل اصلی برمی‌گردانند) کار کند\&. .RE .sp .RS 4 .ie n \{\ \h'-04' 6.\h'+01'\c .\} .el \{\ .sp -1 .IP " 6." 4.2 .\} نتایج shadow copy به طور پیش‌فرض قبل از ارسال به کلاینت مرتب می‌شوند\&. این ویژگی برای سیستم‌فایل‌هایی که دایرکتوری‌ها را بر اساس حروف الفبا نمی‌خوانند (یونیکس پیش‌فرض) سودمند است\&. ترتیب مرتب‌سازی قابل پیکربندی است و در صورتی که سیستم‌فایل فهرست دایرکتوری خود را مرتب می‌کند، می‌توان مرتب‌سازی را کاملاً غیرفعال کرد\&. .RE .sp .RE .PP این ماژول قابلیت پشته‌سازی (stackable) دارد\&. .SH "پیکربندی (CONFIGURATION)" .PP ماژول vfs_shadow_copy2 به پیاده‌سازی اسنپ‌شات در سیستم‌فایل متکی است\&. بسیاری از سیستم‌فایل‌های رایج از این ویژگی به طور بومی پشتیبانی می‌کنند\&. .PP اسنپ‌شات‌های سیستم‌فایل باید زیر دایرکتوری‌هایی با نام ویژه در دسترس باشند تا توسط vfs_shadow_copy2 شناسایی شوند\&. این دایرکتوری اسنپ‌شات معمولاً یک زیردایرکتوری مستقیم از نقطه اتصال ریشه اشتراک است، اما حالت‌های دیگری نیز وجود دارند که با پارامترهای مشروح زیر قابل پیکربندی هستند\&. .PP اسنپ‌شات در یک نقطه زمانی مشخص در زیردایرکتوری از دایرکتوری اسنپ‌شات انتظار می‌رود، که در آن نام دایرکتوری اسنپ‌شات قالبی از زمان اسنپ‌شات است\&. قالب پیش‌فرض که با گزینه shadow:format قابل تغییر است @GMT\-YYYY\&.MM\&.DD\-hh\&.mm\&.ss می‌باشد، که در آن: .RS .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} YYYY سال ۴ رقمی است .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} MM ماه ۲ رقمی است .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} DD روز ۲ رقمی است .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} hh ساعت ۲ رقمی است .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} mm دقیقه ۲ رقمی است .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} ss ثانیه ۲ رقمی است\&. .RE .sp .RE .PP قرارداد نام‌گذاری اسنپ‌شات vfs_shadow_copy2 را می‌توان با دستور \fBdate\fR(1) زیر تولید کرد: .sp .if n \{\ .RS 4 .\} .nf TZ=GMT date +@GMT\-%Y\&.%m\&.%d\-%H\&.%M\&.%S .fi .if n \{\ .RE .\} .SH "گزینه‌ها (OPTIONS)" .PP shadow:mountpoint = MOUNTPOINT .RS 4 با این پارامتر می‌توان نقطه اتصال سیستم‌فایلی را که مسیر اشتراک در آن قرار دارد مشخص کرد\&. معمولاً این نقطه اتصال به صورت خودکار شناسایی می‌شود؛ اما برای برخی موقعیت‌ها، به‌ویژه آزمون‌ها، تعیین دستی آن می‌تواند مناسب باشد\&. .sp مثال: shadow:mountpoint = /path/to/filesystem .sp پیش‌فرض: shadow:mountpoint = NOT SPECIFIED .RE .PP shadow:snapdir = SNAPDIR .RS 4 مسیر دایرکتوری که سیستم‌فایل اشتراک اسنپ‌شات‌های خود را در آن نگه می‌دارد\&. اگر مسیر مطلق مشخص شود، همان‌طور که هست استفاده می‌شود\&. اگر مسیر نسبی مشخص شود، نسبت به نقطه اتصال سیستم‌فایل ریشه اشتراک در نظر گرفته می‌شود (به shadow:mountpoint مراجعه کنید)\&. .sp توجه داشته باشید که shadow:snapdirseverywhere به این پارامتر وابسته است و نیاز به مسیر نسبی دارد\&. تعیین مسیر مطلق باعث غیرفعال شدن shadow:snapdirseverywhere می‌شود\&. .sp همچنین توجه داشته باشید که گزینه shadow:crossmountpoints نیز نیازمند یک snapdir نسبی است\&. تعیین مسیر مطلق باعث غیرفعال شدن shadow:crossmountpoints می‌شود\&. .sp مثال: shadow:snapdir = /some/absolute/path .sp پیش‌فرض: shadow:snapdir = \&.snapshots .RE .PP shadow:basedir = BASEDIR .RS 4 گزینه basedir امکان مشخص کردن دایرکتوری میان نقطه اتصال اشتراک و ریشه اشتراک را فراهم می‌کند که اسنپ‌شات‌های سیستم‌فایل نسبت به آن گرفته می‌شوند\&. .sp برای نمونه اگر: .RS .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} basedir = mountpoint/rel_basedir .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} share_root = basedir/rel_share_root .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} snapshot_path = mountpoint/snapdir .sp یا snapshot_path = snapdir در صورتی که snapdir مطلق باشد .RE .sp .RE آنگاه اسنپ‌شات یک file = mountpoint/rel_basedir/rel_share_root/rel_file در زمان TIME در مسیر snapshot_path/FS_GMT_TOKEN(TIME)/rel_share_root/rel_file یافت خواهد شد، که در آن FS_GMT_TOKEN(TIME) رشته برچسب زمانی متعلق به TIME در قالب مورد نیاز سیستم‌فایل است (به shadow:format مراجعه کنید)\&. .sp مقدار پیش‌فرض برای basedir، نقطه اتصال سیستم‌فایل ریشه اشتراک است (به shadow:mountpoint مراجعه کنید)\&. .sp توجه داشته باشید که گزینه‌های shadow:snapdirseverywhere و shadow:crossmountpoints با shadow:basedir ناسازگار هستند و تنظیم basedir را غیرفعال می‌کنند\&. .RE .PP shadow:snapsharepath = SNAPSHAREPATH .RS 4 با این پارامتر می‌توان مسیر دایرکتوری ریشه اشتراک را در اسنپ‌شات‌ها، نسبت به دایرکتوری ریشه اسنپ‌شات مشخص کرد\&. این یک روش جایگزین برای shadow:basedir است که کنترل بیشتری فراهم می‌کند\&. .sp برای نمونه، اگر درون هر اسنپ‌شات، فایل‌های اشتراک دارای پیشوند path/to/share/ باشند، آنگاه shadow:snapsharepath را می‌توان روی path/to/share تنظیم کرد\&. .sp با این پارامتر، دیگر فرض نمی‌شود که یک اسنپ‌شات تصویری از سیستم‌فایل اصلی یا بخشی از آن است\&. برای نمونه، یک سیستم می‌تواند تنها از فایل‌های موجود در اشتراک‌ها پشتیبان بگیرد و سپس فایل‌های پشتیبان را در یک ساختار منطقی ارائه دهد: .RS .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} share1/ .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} share2/ .RE .sp .RS 4 .ie n \{\ \h'-04'\(bu\h'+03'\c .\} .el \{\ .sp -1 .IP \(bu 2.3 .\} \&.\&.\&./ .RE .sp .RE توجه داشته باشید که گزینه‌های shadow:snapdirseverywhere و shadow:basedir با shadow:snapsharepath ناسازگار هستند و تنظیم shadow:snapsharepath را غیرفعال می‌کنند\&. .sp مثال: shadow:snapsharepath = path/to/share .sp پیش‌فرض: shadow:snapsharepath = NOT SPECIFIED .RE .PP shadow:sort = asc/desc .RS 4 به طور پیش‌فرض، این ماژول داده‌های shadow copy را پیش از ارسال به کلاینت به ترتیب الفبایی مرتب می‌کند\&. با این پارامتر می‌توان جهت مرتب‌سازی را مشخص کرد\&. مقادیر شناخته‌شده عبارتند از desc (نزولی، پیش‌فرض) و asc (صعودی)\&. اگر سیستم‌فایل دایرکتوری‌ها را مرتب‌شده بر اساس الفبا فهرست کند، می‌توان با مشخص کردن هر مقدار دیگری مرتب‌سازی را در این ماژول خاموش کرد\&. .sp مثال: shadow:sort = asc .sp مثال: shadow:sort = none .sp پیش‌فرض: shadow:sort = desc .RE .PP shadow:localtime = yes/no .RS 4 این پارامتر اختیاری مشخص می‌کند که آیا نام‌های اسنپ‌شات در قالب UTC/GMT هستند یا در قالب زمان محلی\&. اگر غیرفعال باشد، UTC/GMT انتظار می‌رود\&. .sp shadow:localtime = no .RE .PP shadow:format = مشخصات قالب برای نام‌های اسنپ‌شات .RS 4 این پارامتر اختیاری مشخصات قالب برای نام‌گذاری اسنپ‌شات‌ها در سیستم‌فایل را تعیین می‌کند\&. قالب باید با مشخصات تبدیل شناخته‌شده توسط str[fp]time سازگار باشد\&. .sp پیش‌فرض: shadow:format = "@GMT\-%Y\&.%m\&.%d\-%H\&.%M\&.%S" .RE .PP shadow:sscanf = yes/no .RS 4 از این پارامتر می‌توان برای تعیین اینکه زمان در رشته قالب به صورت یک عدد صحیح بدون علامت بلند (%lu) داده شده است به جای زمانی که strptime() بتواند تجزیه کند، استفاده کرد\&. نتیجه باید یک زمان unix time_t باشد\&. .sp پیش‌فرض: shadow:sscanf = no .RE .PP shadow:fixinodes = yes/no .RS 4 اگر shadow:fixinodes را فعال کنید، این ماژول شماره inode ظاهری فایل‌ها را در دایرکتوری‌های اسنپ‌شات با استفاده از هش مسیر فایل‌ها تغییر می‌دهد\&. این ویژگی برای سیستم‌های اسنپ‌شاتی مورد نیاز است که در آن‌ها اسنپ‌شات‌ها دارای شماره device:inode یکسانی با فایل‌های اصلی هستند (مانند آنچه در اسنپ‌شات‌های GPFS رخ می‌دهد)\&. اگر این گزینه را تنظیم نکنید، دکمه \(cqrestore\(cq در رابط کاربری shadow copy با خطای نقض اشتراک‌گذاری (sharing violation) با شکست مواجه می‌شود\&. .sp پیش‌فرض: shadow:fixinodes = no .RE .PP shadow:snapdirseverywhere = yes/no .RS 4 اگر shadow:snapdirseverywhere را فعال کنید، این ماژول دایرکتوری‌های اسنپ‌شات را در دایرکتوری کاری جاری و تمام دایرکتوری‌های والد جستجو می‌کند و به طور پیش‌فرض در نقطه اتصال متوقف می‌شود\&. اما برای نحوه تغییر این رفتار به shadow:crossmountpoints مراجعه کنید\&. .sp یک نمونه که به این گزینه نیاز است، filesetهای مستقل در IBM GPFS هستند، اما سیستم‌فایل‌های دیگر نیز ممکن است از اسنپ‌شات‌گیری تنها از زیردرخت‌های خاصی از سیستم‌فایل پشتیبانی کنند\&. .sp توجه داشته باشید که shadow:snapdirseverywhere به shadow:snapdir وابسته است و نیاز دارد که آن یک مسیر نسبی باشد\&. تعیین مسیر مطلق برای snapdir، گزینه shadow:snapdirseverywhere را غیرفعال می‌کند\&. .sp توجه داشته باشید که این گزینه با shadow:basedir ناسازگار است و تنظیم shadow:basedir را خودبه‌خود حذف می‌کند\&. .sp مثال: shadow:snapdirseverywhere = yes .sp پیش‌فرض: shadow:snapdirseverywhere = no .RE .PP shadow:crossmountpoints = yes/no .RS 4 این گزینه در حالت shadow:snapdirseverywhere = yes مؤثر است\&. فعال کردن این گزینه باعث می‌شود ماژول در اولین نقطه اتصال مشاهده‌شده هنگام جستجوی snapdirها متوقف نشود، بلکه به آن اجازه می‌دهد به‌طور بالقوه در تمام طول مسیر جستجو کند\&. .sp یک نمونه که به این گزینه نیاز است، filesetهای مستقل در IBM GPFS هستند، اما سایر سیستم‌فایل‌ها نیز ممکن است از اسنپ‌شات‌گیری تنها از زیردرخت‌های خاص سیستم‌فایل پشتیبانی کنند\&. .sp توجه داشته باشید که shadow:crossmountpoints به shadow:snapdir وابسته است و نیاز دارد که آن یک مسیر نسبی باشد\&. تعیین مسیر مطلق برای snapdir، گزینه shadow:crossmountpoints را غیرفعال می‌کند\&. .sp توجه داشته باشید که این گزینه با گزینه shadow:basedir ناسازگار است و تنظیم shadow:basedir را خودبه‌خود حذف می‌کند\&. .sp مثال: shadow:crossmountpoints = yes .sp پیش‌فرض: shadow:crossmountpoints = no .RE .PP shadow:snapprefix .RS 4 با افزایش تعداد اسنپ‌شات‌ها، سیستم‌فایل‌ها به سازوکاری برای تفکیک یک مجموعه از اسنپ‌شات‌ها از مجموعه دیگر (مانند ماهانه، هفتگی، دستی، رویدادهای ویژه و غیره) نیاز دارند\&. بنابراین این سیستم‌فایل‌ها روش‌های متفاوتی برای برچسب‌گذاری اسنپ‌شات‌ها ارائه می‌دهند، مانند ارائه روشی قابل پیکربندی برای نام‌گذاری اسنپ‌شات‌ها که تنها بر پایه زمان نباشد\&. با داشتن صرفاً shadow:format فیلتر کردن این اسنپ‌شات‌ها بسیار دشوار است\&. با این پارامتر اختیاری، می‌توان یک مؤلفه پیشوند متغیر برای نام‌های دایرکتوری‌های اسنپ‌شات در سیستم‌فایل مشخص کرد\&. اگر این پارامتر تنظیم شود، همراه با پارامترهای shadow:format و shadow:delimiter نام‌های مجاز دایرکتوری‌های اسنپ‌شات در سیستم‌فایل را تعیین می‌کند\&. این گزینه تنها از عبارات منظم پایه (BRE) پشتیبانی می‌کند\&. .RE .PP shadow:delimiter .RS 4 این پارامتر اختیاری به عنوان جداکننده میان shadow:snapprefix و shadow:format استفاده می‌شود\&. این پارامتر تنها زمانی کاربرد دارد که shadow:snapprefix تنظیم شده باشد\&. .sp پیش‌فرض: shadow:delimiter = "_GMT" .RE .SH "مثال‌ها (EXAMPLES)" .PP افزودن پشتیبانی از shadow copy به دایرکتوری‌های خانگی کاربران: .sp .if n \{\ .RS 4 .\} .nf \fI[homes]\fR \m[blue]\fBvfs objects = shadow_copy2\fR\m[] \m[blue]\fBshadow:snapdir = /data/snapshots\fR\m[] \m[blue]\fBshadow:basedir = /data/home\fR\m[] \m[blue]\fBshadow:sort = desc\fR\m[] .fi .if n \{\ .RE .\} .SH "هشدارها (CAVEATS)" .PP این یک راهکار پشتیبان‌گیری، بایگانی، یا کنترل نسخه نیست\&. .PP در سرورهای سامبا یا ویندوز، vfs_shadow_copy2 تنها به عنوان ابزاری برای کاربر نهایی طراحی شده است\&. این ماژول جایگزین یا ارتقا‌دهنده راهکارهای پشتیبان‌گیری و بایگانی شما نیست و به هیچ وجه نباید به عنوان چنین ابزاری تلقی شود\&. علاوه بر این، اگر به کنترل نسخه نیاز دارید، یک سامانه کنترل نسخه پیاده‌سازی کنید\&. .SH "نسخه (VERSION)" .PP این صفحه راهنما بخشی از نسخه 4\&.24\&.6 مجموعه Samba است\&. .SH "نویسندگان (AUTHORS)" .PP نرم‌افزار اصلی Samba و ابزارهای مرتبط توسط Andrew Tridgell ایجاد شده‌اند\&. Samba اکنون توسط تیم Samba به عنوان یک پروژه متن‌باز مشابه نحوه توسعه هسته لینوکس توسعه داده می‌شود\&.