گفتگو هایی در باب سی شارپ

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
حدس میزدم، در واقع از لحظه ای که باجگیر vss رو از کار بندازه داده هایی که بعد ایجاد میکنید یا ویرایش می کنید حفاظت نمیشن.

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


از طرف دیگه تصور کنید میخواهید فایلی رو از پروژه #C تون حذف کنید، هم می توانید از داخل ویژوال استدیو اینکار رو بکنید و هم بصورت دستی با ویرایش کردن فایل متنی پروژه. اینکه شما با غیر فعال بودن vss نتوانستید backup رو حذف کنید بخاطر اینه که میخواستید از خود سرویس vss کمک بگیرید، من در مورد حذف کردن از سیستم فایل و درایو صحبت می کنم که نیازی به خود سرویس نداره.

با غیر فعال بودن این سرویس vss (و فعال بودن پادویش) ، من نتونستم توسط disk cleanup هم بکاپ ها را حذف کنم . حالا نمیدونم disk cleanup از دستورات vss در پشت زمینه برای حذف بکاپ ها استفاده میکنه یا نه .
و اینکه نمیدونم هم پادویش قابلیت محافظت از بکاپ ها بدون دستورات vss (از طریق حذف مستقیم فایل که میگید) را داره یا نه؟ ولی احتمال میدم که داشته باشه و از همون مکانیزمی استفاده کنه که برای جلوگیری از تخریب فایل (هشدار به کاربر زمان تخریب فایل) استفاده میکنه . بازم نمیدونم .


نه، اصلا ربطی به سطح درایور نداره.
منظور از دسترسی administrator دسترسی ای به نام administrator نیست، منظور دسترسی ای است در سطحی که کاربر administrator دارد. administrator خودش دسترسی نیست، کاربره. فرقی نمی کنه که کاربری که دسترسی در اون سطح رو داره اسمش چیه، administrator بخاطر اینکه جزو گروه Administrators ئه مهمه، وگرنه کاربر Ali هم میتونه همونقدر دسترسی داشته باشه که administrator
مثل اینه که بگیم فلان چیز بوی پرتقال میده. میدونیم پرتقال بو نیست، پرتقال میوه است. ولی ما هر چی بوی اون رو بده میگیم بوی پرتقال.

system هم همینطور، دسترسی نیست، کاربر داخلی ئه، یعنی Internal Account ئه. بر خلاف کاربر هایی که شما برای لاگین در ویندوز تون میسازید، یکسری کاربر هایی از قبل در داخل ویندوز تعریف شده اند که لاگین کردنی نیستند و در لیست کاربران هم نمایش داده نمی شوند و عضو هیچ گروه کاربری هم نیستند، یعنی حتی جزو گروه کاربران Administrators ها هم به حساب نمیان. Administrator رو هم خود ویندوز از قبل ایجاد میکنه ولی جزو کاربران قابل نمایشه و باهاش لاگین هم می توانید بکنید و عضو گروه کاربری هم هست. SYSTEM کاربر سیستمی ویندوزه، بصورت پیشفرض دسترسی زیادی داره و سرویس های ویندوز و پروسه هایی که مستقل از کاربر شما اجرا میشن هم توسط همین SYSTEM اجرا میشن. اگه دقت کنید در لیست پروسه های ویندوز مشخص میشه که اجرا کننده اش کدوم کاربر ئه، اونجا یکسری پروسه با همین کاربر داخلی SYSTEM می بینید.

آها ممنون

-------------------------------------------------------------------------

میگم استاد علی ، چرا بعضی از (شاید هم خیلی از) اعضایی که توی vss در api ویندوز هست ، در اعضای متناظرش در alphavss نیست ؟! مثل IVssBackupComponents::GetWriterComponentsCount method
بخاطر اینه که مهم نیستن؟

بعد اینکه اونجا چون مطالب خیلی هست ، من دقیق نمیدونم از کجا شروع به خوندن کنم . من چند تا از صفحات مهم که حس میکردم برام خوبه را پیدا و دسته بندی کردم (به ترتیب) :

Backup Components Document Life Cycle - Windows applications

Backup Components Document Contents - Windows applications

Overview of Processing a Backup Under VSS - Windows applications

Configuring VSS - Windows applications

VSS Implementation Details - Windows applications

Troubleshooting VSS Applications - Windows applications

اول ، لینک سوم که شما داده بودین را خوندم (دو لینک که در آخر صفحه اش هست را بعدا میخونم) . بعد ، نصف صفحه از لینک دوم (را در حال خوندن هستم) . البته طول میکشه چون بیشتر اوقات به لینک هایی که توی صفحات هست (که زیاد هم هستن) هم میخونم و هم بخش واژه نامه را .
البته لینک اول را هنوز نخوندم .
اما حس میکنم این ترتیب درستی نباشه . هست؟ چون چیز به درد بخور خاصی تا حالا گیرم نیومد (به جز لینکی که شما دادین که حس میکنم باید پشت بندش یه لینک دیگه را خوند تا درکش کرد) .
شما ترتیب لینک هایی که فکر میکنید درسته را بهم میدین بی زحمت؟
 
آخرین ویرایش:

the_king

مدیرکل انجمن
میگم استاد علی ، چرا بعضی از (شاید هم خیلی از) اعضایی که توی vss در api ویندوز هست ، در اعضای متناظرش در alphavss نیست ؟! مثل IVssBackupComponents::GetWriterComponentsCount method
بخاطر اینه که مهم نیستن؟

نه، دلیلش اینه که بخاطر تغییراتی که در پیاده سازی Wrapper داده بهش نیازی نیست. خودش از اونها استفاده کرده ولی نیازی نبوده که برای استفاده شما در Wrapper قرار بده.
Wrapper قراره کار برنامه نویس NET. رو ساده تر کنه، ممکنه جایی برای ساده تر کردن به ساختار اصلی وفادار باقی نمونه.
مثلا مجموعه ای بوده که در نمونه اصلی با یک تابع تعداد اعضاء رو اعلام می کرده و با یک تابع دیگه عضو اندیس مشخصی رو برمیگردونده. یعنی برنامه نویس ++C اول باید میفهمیده مجموعه چند تا عضو داره و بعد یکی یکی اعضاء رو میخونده. حالا وقتی در پیاده سازی Wrapper از امکانات IList در NET. استفاده کرده و ایندوتا تابع رو ترکیب کرده و بجاش فقط یک پروپرتی برای دریافت لیست ایجاد کرده دیگه نیازی به وجود مستقل اون دو تا تابع نیست. طبعا امکانات اینترفیس IList هم خیلی بیشتر به درد برنامه نویس NET. میخوره تا صرفا اون دو تا متد. خود لیست هم Count داره دیگه.

بعد اینکه اونجا چون مطالب خیلی هست ، من دقیق نمیدونم از کجا شروع به خوندن کنم . من چند تا از صفحات مهم که حس میکردم برام خوبه را پیدا و دسته بندی کردم (به ترتیب) :

Backup Components Document Life Cycle - Windows applications

Backup Components Document Contents - Windows applications

Overview of Processing a Backup Under VSS - Windows applications

Configuring VSS - Windows applications

VSS Implementation Details - Windows applications

Troubleshooting VSS Applications - Windows applications

اول ، لینک سوم که شما داده بودین را خوندم (دو لینک که در آخر صفحه اش هست را بعدا میخونم) . بعد ، نصف صفحه از لینک دوم (را در حال خوندن هستم) . البته طول میکشه چون بیشتر اوقات به لینک هایی که توی صفحات هست (که زیاد هم هستن) هم میخونم و هم بخش واژه نامه را .
البته لینک اول را هنوز نخوندم .
اما حس میکنم این ترتیب درستی نباشه . هست؟ چون چیز به درد بخور خاصی تا حالا گیرم نیومد (به جز لینکی که شما دادین که حس میکنم باید پشت بندش یه لینک دیگه را خوند تا درکش کرد) .
شما ترتیب لینک هایی که فکر میکنید درسته را بهم میدین بی زحمت؟
ترتیب درست بر اساس اون فهرست سمت چپ ئه که در کنار مطالب می بینید، از بالا به پایین.
تا مطالب یک صفحه رو درست متوجه نشدید سراغ صفحات بعدی نروید. نمیدونم به چی میگید بدرد بخور یا با چه ملاکی بدرد خوری رو میسنجید.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خیلی ممنونم .
یه چیز بگم عصبانی میشین؟ :green:
من مفهوم (نه معنی) component هم متوجه نشدم (و همینطور backup component document رو)
 

the_king

مدیرکل انجمن
خیلی ممنونم .
یه چیز بگم عصبانی میشین؟ :green:
من مفهوم (نه معنی) component هم متوجه نشدم (و همینطور backup component document رو)
نه، چرا باید عصبانی بشم؟
Component یک واحد کلی از تقسیم بندی ئه برنامه است، تکه ای از یک برنامه است. بزرگی و کوچیکی و تعداد اجزاء داخلش میتونه کاملا متفاوت باشه.
شما از VSS فقط یک کاربرد خاص رو در ذهن دارید که میاد از درایو و فایل پشتیبانگیری میکنه، در حالی که اگه شرح VSS رو مطالعه کنید می بینید اصلا صحبتش خیلی کلی ئه و سر فایل و درایو نیست.
شما وقتی از VSS برای پشتیبانگیری از داده های SQL Server استفاده می کنید کلا ماهیت داده و عملکرد پشتیبانگیر و Writer متفاوته. VSS که نمیدونه در آینده ممکنه روی سیستم شما Provider ها و چه Writer هایی با چه هدفی نصب بشن، باید به طریقی که استاندارد باشه بتونه ازشون اطلاعات بگیره تا باهاشون سازگار باشه.
حالا تصور کنید که خودتونم برای کاربرد مشخصی از VSS استفاده کنید که ربطی به فایل و درایو نداره. طبعا بدون اطلاعاتی که مشخص کنه فرضا شما در چه مرحله ای از پشتیبانگیری هستید و با چه writer ای در ارتباط ئه و از چه چیزی پشتیبانگیری میشه، سرویس VSS نمیتونه باهاش ارتباطی برقرار کنه. این اطلاعات باید از جایی بیاد که این اطلاعات رو در اختیار VSS قرار بده و ساختار مشخص و استانداردی داشته باشه که VSS بشناسه. backup component document همون منبع این اطلاعاته.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
نه، چرا باید عصبانی بشم؟
Component یک واحد کلی از تقسیم بندی ئه برنامه است، تکه ای از یک برنامه است. بزرگی و کوچیکی و تعداد اجزاء داخلش میتونه کاملا متفاوت باشه.
شما از VSS فقط یک کاربرد خاص رو در ذهن دارید که میاد از درایو و فایل پشتیبانگیری میکنه، در حالی که اگه شرح VSS رو مطالعه کنید می بینید اصلا صحبتش خیلی کلی ئه و سر فایل و درایو نیست.
شما وقتی از VSS برای پشتیبانگیری از داده های SQL Server استفاده می کنید کلا ماهیت داده و عملکرد پشتیبانگیر و Writer متفاوته. VSS که نمیدونه در آینده ممکنه روی سیستم شما Provider ها و چه Writer هایی با چه هدفی نصب بشن، باید به طریقی که استاندارد باشه بتونه ازشون اطلاعات بگیره تا باهاشون سازگار باشه.
حالا تصور کنید که خودتونم برای کاربرد مشخصی از VSS استفاده کنید که ربطی به فایل و درایو نداره. طبعا بدون اطلاعاتی که مشخص کنه فرضا شما در چه مرحله ای از پشتیبانگیری هستید و با چه writer ای در ارتباط ئه و از چه چیزی پشتیبانگیری میشه، سرویس VSS نمیتونه باهاش ارتباطی برقرار کنه. این اطلاعات باید از جایی بیاد که این اطلاعات رو در اختیار VSS قرار بده و ساختار مشخص و استانداردی داشته باشه که VSS بشناسه. backup component document همون منبع این اطلاعاته.

خیلی ممنونم استاد علی .
طبق اسنادی که دارم میخونم ، متوجه میشم چجوری به اسناد یا مثلا به اطلاعات کمپوننت ها دسترسی پیدا کنیم ولی چون هنوز هم (حتی با توضیحات شما) درک درستی از کمپوننت ها ندارم ، نمیدونم این اطلاعات چیه و دسترسی به این اطلاعات کجا به دردم میخوره؟

--------------------------------------

بعد اینکه اون 2 تا 3 لینک اول رو خوندم .
حالا میخوام بین دو بحث Configuring VSS و VSS Implementation Details :

Configuring VSS - Windows applications

VSS Implementation Details - Windows applications

بخونم . به نظرتون کدوم یک از این دو بحث ، مقدم بر اون یکی هست؟
بعد اینکه درباره ی چگونگی حجم بکاپ یا احیانا حذف شدن اتوماتیک بکاپ ها و اینها ، اصلا توضیح داده ؟ اگه آره ، توی کدوم لینک؟
 
آخرین ویرایش:

the_king

مدیرکل انجمن
بعد اینکه اون 2 تا 3 لینک اول رو خوندم .
حالا میخوام بین دو بحث Configuring VSS و VSS Implementation Details :

Configuring VSS - Windows applications

VSS Implementation Details - Windows applications

بخونم . به نظرتون کدوم یک از این دو بحث ، مقدم بر اون یکی هست؟

عرض کردم بر اساس ترتیب فهرست از بالا به پایین بخونید، نه گزینشی. خودتون که می بینید Configuring VSS چند مرحله بالاتر از VSS Implementation Details ئه.
بعد اینکه درباره ی چگونگی حجم بکاپ یا احیانا حذف شدن اتوماتیک بکاپ ها و اینها ، اصلا توضیح داده ؟ اگه آره ، توی کدوم لینک؟
نمیدونم، حذف خودکار کاریه که ویندوز انجام میده، نه خود سرویس. اصولا مربوط به مستندات ویندوز ئه، نه VSS. اگه جایی در موردش توضیح بده قاعدتا مستندات Windows رو باید بگردید.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
ممنون استاد علی
من مفاهیم ها را الان تموم کردم . اما از writer ها چیز بیشتری چندان گیرم نیومد . میخوام برم توی قسمت Configuring VSS .
میتونم ازتون بپرسم که اطلاعات کمپوننت ها و writer ها (و سندهاشون _ مثل سند فراداده writer ها یا سند کمپوننت بکاپ) را که گیرآوردیم ، حالا کجا به دردمون میخوره؟ کجا میشه ازش استفاده اش کرد؟ برای من که فقط میخوام یه بکاپ بگیرم و عمل ریستور را نمیخوام انجام بدم (چون میدونید در این نوع بکاپی که میگیرم ، کاربر خودش عمل ریستور را از سربرگ previous version انجام میده) ، اصلا به درددم میخوره؟ ( یا وقت گذاشتن روی بررسی این اسناد و کمپوننت ها ، وقت تلف کردنه برای من؟ )

بعد اینکه معادل کلاس CVssWriter اصلا در alphavss هست؟
 

the_king

مدیرکل انجمن
ممنون استاد علی
من مفاهیم ها را الان تموم کردم . اما از writer ها چیز بیشتری چندان گیرم نیومد . میخوام برم توی قسمت Configuring VSS .
میتونم ازتون بپرسم که اطلاعات کمپوننت ها و writer ها (و سندهاشون _ مثل سند فراداده writer ها یا سند کمپوننت بکاپ) را که گیرآوردیم ، حالا کجا به دردمون میخوره؟ کجا میشه ازش استفاده اش کرد؟

طوری میخونید که خوندن و نخوندن تون فرقی با هم نداره. خیلی روشن توضیح داده که برای چه منظوریه و چه چیزهایی داخلش مشخص شده.

برای من که فقط میخوام یه بکاپ بگیرم و عمل ریستور را نمیخوام انجام بدم (چون میدونید در این نوع بکاپی که میگیرم ، کاربر خودش عمل ریستور را از سربرگ previous version انجام میده) ، اصلا به درددم میخوره؟ ( یا وقت گذاشتن روی بررسی این اسناد و کمپوننت ها ، وقت تلف کردنه برای من؟ )
نمیدونم چقدر برنامه تون در مقابل backup هایی که میسازه انعطاف نشون میده.
کاربر باید خودش backup های قدیمی که برنامه شما میگیره و روی هم تلنبار شده رو پاکسازی کنه؟ و برنامه شما کاری نداره که فایلی که داره ازش backup میگیره نسخه سالمیه یا فایل رمزی شده ای است که باجگیر روی اون بازنویسی کرده؟ وقتی فایلی از سیستم حذف شده و برنامه شما backup جدیدی گرفت کاربر باید روی این backup جدید که فایله دیگه داخلش نیست حساب باز کنه و با خیال راحت backup های قبلی رو پاک کنه؟ در کل کاری که برنامه تون میخواد انجام بده برای کاربر مزاحمتی نداره؟ اگه برنامه تون چشم بسته و بدون مسئولیت پذیری کار می کنه طبعا به هیچ اطلاعاتی نیاز نداره.

بعد اینکه معادل کلاس CVssWriter اصلا در alphavss هست؟
خود alphavss ازش استفاده می کنه اما چون یک کلاس انتزاعی ئه و پیاده سازی اش باید در خود Wrapper انجام بشه دلیلی نداره که در خروجی Wrapper خود کلاس انتزاعی رو برای شما قرار بده.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
طوری میخونید که خوندن و نخوندن تون فرقی با هم نداره. خیلی روشن توضیح داده که برای چه منظوریه و چه چیزهایی داخلش مشخص شده.

استاد ، کشتین منو :green:
خدا رو شکر این بار توی فایل word چیزهایی که مهمتر بود رو یادداشت کردم که به عنوان سندی باشه . حالا چیزی که متوجه شدم هه دیگه . احتمالا جاهایی هست که اشتباه متوجه شدم . بعضی جاها فقط ترجمه شو نوتم ولی درک نکردم قضیه اش چی شد .
این فایل را در زیر پیوست کردم :) (البته تا اینجا که خوندم . هنوز تموم نشده)


نمیدونم چقدر برنامه تون در مقابل backup هایی که میسازه انعطاف نشون میده.
کاربر باید خودش backup های قدیمی که برنامه شما میگیره و روی هم تلنبار شده رو پاکسازی کنه؟

پاکسازی و حذف بکاپ توسط کاربر را که براش میذارم . البته کار خاصی هم نباید داشته باشه .


و برنامه شما کاری نداره که فایلی که داره ازش backup میگیره نسخه سالمیه یا فایل رمزی شده ای است که باجگیر روی اون بازنویسی کرده؟

نه .
کاری به اینا نداره . تازه فهمیدن اینکه یه فایل رمز شده هست یا نه اونم اینکه فایلی نباشه که کاربر رمز دار کرده باشدش (مثل rar) ، برام فکر نکنم آسون باشه (البته طرف این قضیه هم نرفتم) . فایده ی خاصی هم نداره .
اما میشه کاری کرد که بجای یک درایو ، از یه پوشه ی خاص بکاپ گرفت؟ یا یه پوشه ی خاص را از بکاپ مستثنی کرد؟ من در این باره یه کم گشتم ، چیزی گیر نیاوردم . اون سند مایکروسافت هم که هنوز تموم نشد ببینم همچین چیزی هست یا نه . توی تابع AddToSnapshotSet هم که نام درایو را برای بکاپ میدیم ، نام پوشه را دیدم قبول نمیکنه و ارور میده .


وقتی فایلی از سیستم حذف شده و برنامه شما backup جدیدی گرفت کاربر باید روی این backup جدید که فایله دیگه داخلش نیست حساب باز کنه و با خیال راحت backup های قبلی رو پاک کنه؟

من احتمالا differential بکاپ میگیرم (شاید هم incremental بگیرم اما احتمالش کمه . شاید هم نحوه شو به دست کاربر بسپارم) . بنابراین کاربر خودش تصمیم میگیره و قابلیت حذف را براش میذارم .


در کل کاری که برنامه تون میخواد انجام بده برای کاربر مزاحمتی نداره؟ اگه برنامه تون چشم بسته و بدون مسئولیت پذیری کار می کنه طبعا به هیچ اطلاعاتی نیاز نداره.

منظورتون را دقیقا متوجه نشدم چیه؟
کلا ویژگی های بکاپ پادویش را داشته باشه به اضافه ی اینکه اگه شد ، یه کم ویژگی های بالاتر . یعنی مثلا اغلب دستورات vssadmin (البته توسط alphavss) را میخوام . یعنی اطلاعات و عملیاتی که در دستورات delete shadows و list shadows و list shadowstorage و list volume و resize shadowstorage انجام میده را نیاز دارم . حالا مسائل دیگه را بعدا فکر میکنم ولی این حداقل نیازهامه . که هنوز به مباحث اش نرسیدم . تازه مفاهیم اولیه ام.
اگه هم جوری بشه درست کرد که اون انتقال بکاپ های vss به سیستم های دیگه جهت ریکاوری را درست کنه ، خیلی خوب میشد (حالا نمیدونم این قابلیت را بذارم یا نذارم ، بتونم یا نتونم . هنوز بهش نرسیدم)

-----------------------------------------------------------

بعد اینکه استاد ، برای اون منظور من (نمایش بکاپ در سربرگ previous version) ، لازم به استفاده از اینام VssVolumeSnapshotAttributes نیست . فقط استفاده از یک مقدار (مقدار ClientAccessibleWriters) از اینام VssSnapshotContext کفایت میکنه . من نمیدونم چرا اطلاعات را پراکنده میده توی قضیه ی vss . مثلا توی توضیح همین مقدار ClientAccessibleWriters (در سایت مایکروسافت) نوشته read-only و client-accessible shadow copy (کلا اینکه در دسترس کاربر یعنی در همون سربرگ نمایش میده) با شرکت writer ها و با provider پیش فرض (system provider) صورت میگیره اما ویژگی ها و اتریباتس هایی که با ست کردن این مقدار ، مشخص میشه را مشخص نکرد . بعد که توی اینام VssVolumeSnapshotAttributes (در مایکروسافت) توضیحات مقادیرها را میخونیم ، برای مقادیر Persistent و ClientAccessible و NoAutoRelease نوشته که اگه مقدار ClientAccessibleWriters را در اینام VssSnapshotContext انتخاب کنیم ، بصورت اتوماتیک این مقادیرها در اینام VssVolumeSnapshotAttributes براش ست میشن .
بعد هم جالب اینکه فقط با انتخاب همین مقدار ClientAccessibleWriters در اینام VssSnapshotContext ، با اونکه در توضیحات Differential چیزی از همین قضیه نوشته نیست ولی وقتی از دستورات vssadmin استفاده کردم ، در توضیحاتش ، مقدار اتریباتس Differential هم براش زده بود!
بعد هم یه جای دیگه میگه مقدار Persistent ، فقط توی فایل سیستم ntfs جواب میده (در حالی که در توضیحات مربوط به Persistent نمیگه) .
کلا آدم رو گیج میکنه . توضیحاتش را باید از چند جا جمع کرد تا به جمع بندی رسید . خیلی پخش و پلا توضیح داد .
 

پیوست ها

  • 1 vss.rar
    21.3 کیلوبایت · بازدیدها: 0
آخرین ویرایش:

the_king

مدیرکل انجمن
استاد ، کشتین منو :green:
هدف اینه که یاد بگیرید که چطور بخونید و چطور استفاده کنید، تا شهید نشید که یاد نمی گیرید، همه کسانی که همچین کد نویسی هایی میخوان انجام بدن بارها کشته شدن تا بالاخره یاد گرفتن.

کاری به اینا نداره . تازه فهمیدن اینکه یه فایل رمز شده هست یا نه اونم اینکه فایلی نباشه که کاربر رمز دار کرده باشدش (مثل rar) ، برام فکر نکنم آسون باشه (البته طرف این قضیه هم نرفتم) . فایده ی خاصی هم نداره .

مساله اینه که شما با اون backup به کاربر می خواهید این امکان یا حتی اطمینان رو بدید که اگه فایل ات حذف شد یا ویروسی شد یا رمزی شد میتوانی بازیابی اش کنی. اگه این راهکار موثری نباشه که فایده نداره. اگه هدف محافظت باشه مهمه که کاربر بدونه backup ها بدون توجه به تغییرات گرفته میشن. و اگه کاربر backup های قبلی رو اضافی فرض کنه و حذف کنه ممکنه backup جدید بدردش نخوره چون فایل قبل از backup گرفتن رمزی شده بوده یا فایل قبل از backup گرفتن حذف شده بوده.

اما میشه کاری کرد که بجای یک درایو ، از یه پوشه ی خاص بکاپ گرفت؟ یا یه پوشه ی خاص را از بکاپ مستثنی کرد؟ من در این باره یه کم گشتم ، چیزی گیر نیاوردم . اون سند مایکروسافت هم که هنوز تموم نشد ببینم همچین چیزی هست یا نه . توی تابع AddToSnapshotSet هم که نام درایو را برای بکاپ میدیم ، نام پوشه را دیدم قبول نمیکنه و ارور میده .
اونطور که اطلاع دارم partial backup جزو قابلیت های ویندوز های سرور ئه، در ویندوز های کلاینت پشتیبانی نمیشه.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
مساله اینه که شما با اون backup به کاربر می خواهید این امکان یا حتی اطمینان رو بدید که اگه فایل ات حذف شد یا ویروسی شد یا رمزی شد میتوانی بازیابی اش کنی. اگه این راهکار موثری نباشه که فایده نداره. اگه هدف محافظت باشه مهمه که کاربر بدونه backup ها بدون توجه به تغییرات گرفته میشن. و اگه کاربر backup های قبلی رو اضافی فرض کنه و حذف کنه ممکنه backup جدید بدردش نخوره چون فایل قبل از backup گرفتن رمزی شده بوده یا فایل قبل از backup گرفتن حذف شده بوده.


اونطور که اطلاع دارم partial backup جزو قابلیت های ویندوز های سرور ئه، در ویندوز های کلاینت پشتیبانی نمیشه.

سلامی مجدد
ممنون
باز هم به نظرم چیزی که گفتید از دو منظر ، نظر متفاوتی میتونه داشته باشه . هم درسته و هم جور دیگه ای میشه بهش نگاه کرد (نه اینکه منظورم این باشه که حرف تون غلط هه) .
اول اینکه در قضیه ی باج افزارها ، از روش خاصی نمیشه تشخیص داد که فایلی که رمز شده هست ، آیا کاربر خودش رمز دارش کرد و رمزش را داره یا نداره . (شاید از روش های دیگه بشه فایل های رمز دار را توسط باجگیرها فهمید که معمولا از پسوند نامتعارف و ناشناخته استفاده میکنن _اما نه همیشه_ که این هم همیشگی و هم روش درستی برای تشخیص نیست) . بعد اینکه به قول خودتون اگه باجگیری هم بیاد ، علاوه بر رمز کردن فایل ، میتونه کل این بکاپ ها را هم حذف کنه مگر اینکه طرف ، نرم افزار محافظت از بکاپ به همراه ضد باجگیر داشته باشه (که فکر کنم پادویش باشه که علاوه بر ضد باجگیر ، محافظت از بکاپ هم داره _یعنی من نرم افزار محافظت از بکاپ دیگه ای یا ضد باجگیری که بخش محافظت از بکاپ داشته باشن را ندیدم) که در این صورت اصلا نمیذاره فایلی رمز بشه و هم باجگیر را حذف میکنه .
دوما در قضیه ی حذف شدن فایل ، شاید اصلا کاربر خودش از قصد اومده (بصورت دستی یا با نرم افزار) فایل مورد نظرش را پاک کرده . یعنی من که نمیتونم تشخیص بدم که اون از قصد اومده پاک کرده یا از سر غیر عمد . واسه همین بکاپ هست که اگه از سر غیر عمد پاک کرد ، سریع به بکاپش رجوع میکنه . حالا اگه بکاپ را بخواد حذف کنه ، اولا بهش پیام تایید و تاکید داده میشه (البته در صورت داشتن نرم افزارهای محافظت از بکاپ مثل ضد رمز پادویش ، باید اونها را اول غیر فعال کنه) و دوما اگه بشه لیست فایل ها و همین طور حجم های فایل های داخل بکاپ ها(یی که میگیریم) را فهمید ، میشه موقع حذف بکاپ ، فایل های حذف شده یا ویرایش شده را نشون داد . این کار میشه؟

به هر حال آخر میخواستم بدونم که اطلاعات کمپوننت ها به دردم میخوره؟ اگه آره ، کجا؟
بعد اینکه نیازهام را هم در پست بالا گفتم . اغلب دستورات vssadmin (البته توسط alphavss)
درباره قابلیت های دیگه اش م میخوام قابلیت رصد اطلاعات و فایل هایی که در درایوها اضافه میشه را بذارم (البته این ربطی به دستورات vss نداره) . یعنی اول کاربر توی تنظیمات نرم افزار ، میزان اضافه شدن را تنظیم میکنه . مثلا روی 10 گیگ تنظیم میکنه (این بازه را از 1 گیگ تا 50 گیگ براش قابل تغییر میذارم) . بعد اگه نسبت به آخرین بکاپی که از اون درایو گرفته شد ، 10 گیگ به اون درایو بیشتر اضافه شد ، نرم افزار یه پیام برای بکاپ گیری میده که در صورت تایید کاربر ، از اون درایو بکاپ گرفته میشه .
البته تغییرات را برای اون درایو نمیخوام در نظر بگیرم . یعنی مثلا 10 گیگ از فایل ها حذف شده باشن یا اینکه 5 گیگ حذف شده باشن و دوباره 5 گیگ اضافه شده باشن توی اون درایو (که در مجموع بشه 10 گیگ) ، پیام نمیده . چون در این صورت بکاپ قبلی ، حتی فایل های اضافه ترِ قبلی که حذف شدن (اون 5 یا 10 گیگ اطلاعاتِ بیشتر را) با خودش داره دیگه . پس در اینجا لزومی برای بار اضافه و بکاپ اضافه تر نیست . به نظرتون کار درستی میکنم؟ یا اینکه به نظرتون ، بجای اضافات در اون درایو ، میزان تغییرات را لحاظ کنم ، بهتره؟

-----------------------------------------------------------------

ویندوز اگه بخواد چیزی را حذف کنه ، از توابعی که خودش در اختیار برنامه نویس ها قرار داد این کار را میکنه یا روش غیر از این هم میتونه؟ نمیدونم چرا پادویش میتونه جلوی حذف بکاپ (از طریق پروسه ها یا از طریق cleanup ویندوز) را بگیره اما ویندوز میتونه حذفش کنه .
اگه یه بکاپ گرفته باشیم ؛ بعد یه خیلی تغییرات توی اون درایو داده باشیم (مثلا یه خیلی فایل را حذف و خیلی فایل هم اضافه کنیم به اون درایو) و دیگه هم بکاپ دیگه ای جز همون اولی نگرفته باشیم ، ممکنه ویندوز بکاپ مون را حذف کنه؟ یا اینکه دیفرگمنت کردن توی حذف بکاپ میتونه تاثیر داشته باشه؟ چون اون بکاپی که برام حذف شده بود ، تقریبا همین اتفاق براش افتاده بود.
و هم اینکه یه بکاپ گرفته باشیم ؛ بعد یه خیلی تغییرات توی اون درایو داده باشیم و بخوایم یه بکاپ دیگه بگیریم ، حجم تقریبی بکاپ جدید چقدر میشه؟ تا به کاربر بتونیم بگیم فضای اختصاصی برای vss کمه و اگه کم باشه ، ویندوز بکاپ (حداقل بکاپ های قبلی) را از بین میبره . (البته این دو سئوال را قبلا هم پرسیدم) . توی سایت میبینیم نوشته که از روش copy-on-write و differential استفاده میکنه و تفاوت ها را عینا لحاظ میکنه اما خیلی اوقات اصلا حجم بکاپ جدید ، برابر با تفاوت و تغییرات جدید نیست و خیلی کمتره . مثلا 10 گیگ حذف و 30 گیگ اضافه میکنیم اما بکاپ جدید ، به چند مگ هم نمیرسه .
 
آخرین ویرایش:

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
سلامی مجدد
یه سئوال دیگه اینکه با متد QuerySnapshots ، یعنی با کد زیر :


کد:
            IVssImplementation vssImplementation = VssUtils.LoadImplementation(); 
            using (IVssBackupComponents vssBackup = vssImplementation.CreateVssBackupComponents()) 
            {
                vssBackup.InitializeForBackup(null);
                vssBackup.SetContext(VssSnapshotContext.ClientAccessibleWriters);

                IEnumerable<VssSnapshotProperties> vssInfo = vssBackup.QuerySnapshots();
                foreach (var item in vssInfo)
                {
                    MessageBox.Show(item.OriginalVolumeName);
                }
            }

همه ی اطلاعات بکاپ های در اون context را میتونم بگیرم ولی یه عیب بزرگی که نسبت به دستور vssadmin list shadows داره اینه که پروپرتی OriginalVolumeName در بالا ، نام درایوی که اون بکاپ توش هست را نمیذاره در صورتی که دستور vssadmin برای مقدار Original Volume اش ، همون اول نام درایو را توی کلوشه میذاره .
الان میدونین برای اینکه متوجه بشم که یه بکاپ برای کدوم درایو هست ، چی کار باید کنم؟ البته طبق کد بالا ، منظورم بکاپی هست که همه ی اطلاعات اش رو داریم (یعنی id و setid و context و زمان ایجاد و بسیاری دیگه) ولی نمیدونیم واسه ی کدوم درایو هه .

----------------------------------

سه دستور vssadmin list shadowstorage و vssadmin resize shadowstorage و vssadmin list volumes را میفهمیدم معادل کدوم توابع در alphavss میشه ، خیلی خوب میشد .
 
آخرین ویرایش:

the_king

مدیرکل انجمن
یکسری سوالات تون رو که خودتون باید جواب بدید چون شما دارید مستنداتش رو میخونید، من که نمی خونم. اینکه الان برای موردی کاربردی در برنامه تون سراغ ندارید خیلی مهم نیست، مهم اینه که الان بدونید فلان چیز برای فلان عملیات هست، که بعدا اگر بهشون نیاز پیدا کردید بدونید که همچین موردی وجود داشته.
چیزی که خیلی مهمه و باید بهش توجه داشته باشید ماهیت backup های vss ئه. مثلا شما نمی توانید backup ای بگیرید و بعد منتقل کنید به فلش درایو و بعد یک مدت برگردونید و توقع داشته باشید بشه باهاش restore انجام داد. backup باید همیشه در دسترس سیستم باشه که تکمیلش کنه. backup ای که در گذشته گرفته شده بوده با تغییراتی که در آینده پیش میاد گرفته میشه، نه همون لحظه. شما که نمی توانید backup ئه vss رو با فایل zip ای مقایسه کنید که دیگه تغییر نمی کنه.
اگه شما backup جدیدی میگیرید که نسبت به backup کامل ای differential ثبت میشه به اطلاعات فایل های حذف شده نیازی نداره چون در backup کامل قبلی هست، به فایل های جدید هم نیازی نداره چون خود فایل های جدید در درایو سرجاشون هستند و تغییری نداشته اند. این backup در آینده زمانی حجیم میشه که فایل هایی که در زمان backup گیری جدید محسوب میشدند تغییر کنند یا حذف شوند.
backup گیری رو باید با دوره زمانی فرضا هفته ای یکبار مشخص کنید، وگرنه ملاک دیگه ای در عمل قابل اجرا نیست.

کد:
        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
        private static extern bool GetVolumePathNamesForVolumeNameW(string lpszVolumeName, string lpszVolumePathNames, int cchBuferLength, ref int lpcchReturnLength);

        private string VolumeGUID2Letter(string guid)
        {
            int length = 100;
            var letter = new string(' ', length);
            if (GetVolumePathNamesForVolumeNameW(guid, letter, length, ref length) == false)
            {
                return string.Empty;
            }
            return letter.Split('\0')[0];
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var volumeGUID = @"\\?\Volume{1b10fe48-8172-46ed-3e72-c8a429dc89fb}\";
            var volumeLetter = VolumeGUID2Letter(volumeGUID);
        }
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
ممنون استاد علی
اینترفیس IVssDifferentialSoftwareSnapshotManagement انگار برای مدیریت حجم درایو برای شادو استوریج هست (هم ست کردن و هم تغییر سایز استوریج و احتمالا هم با متدهای بخش query اش ، جستجو و لیست کردن شادو استوریج درایوها)
ولی نمیدونم چجوری میشه برای استفاده از این اینترفیس ، ازش شی ایجاد کرد (حالا با استفاده از اعضای بقیه ی کلاس ها و ...) . توی هیچ کدوم از راهنماش ، درباره ی شی ساختنش توضیح نداده :

IVssDifferentialSoftwareSnapshotManagement Interface

و

https://docs.microsoft.com/en-us/wi...n-vsmgmt-ivssdifferentialsoftwaresnapshotmgmt

چجوری میشه ازش شی ساخت؟

بعد هم تفاوت دو آرگومان اول متد AddDiffArea ، یعنی volumeName و diffAreaVolumeName را دقیق متوجه نشدم چیه؟ هر دو نام یک درایو را میخوان؟
این متد AddDiffArea هم برای ست کردن شادو استورج برای اولین بار هست؟

-------------------

بعد اینکه فرض کنید یه درایو 500 گیگ فضا داره . 100 گیگ حجم اطلاعات (استفاده شده) داره . 25 گیگ فضای کلی برای بکاپ براش اختصاص داده شده . االان ازش برای اولین بار بکاپ (کامل) گرفتیم و حجم این بکاپ 1 گیگ شده و بعد از مدتی ، 300 گیگ اطلاعات دیگه توی اون درایو اضافه میکنیم (که کلا میشه 400 گیگ اطلاعات) :
1) اگه الان یه بکاپ دیگه (کامل یا تفاوتی یا افزایشی) بگیریم ، شما میدونید حجم بکاپش چقدر میشه؟ یا تخمینا چقدر میشه؟ (اگه بکاپ تفاوتی بگیریم ، فکر نکنم حجم بکاپ مون تفاوت حجم اطلاعات در بکاپ جدید و بکاپ قبلی ، یعنی حجمش 300 گیگ بشه . حداقل در بکاپ های من که این جوری نمیشه و حجمش خیلی خیلی کمتره اما نمیدونم بر چه اساسه)
2) اگه حجم بکاپ جدیدمون از 25 گیگ بالاتر بزنه و ما فضای کلی برای بکاپ را هم افزایش نداده باشیم ، (بدون اطلاع ما) ویندوز بکاپ های قبلی را حذف میکنه و یه بکاپ کامل میگیره؟ دلیل حذف گاها بکاپ های من همین میتونه باشه؟ و اگه این درست هه ، قبل از عملیات بکاپ ، نمیشه یه جوری میزان حجم بکاپی که میخواد بگیره (و هنوز نگرفت) را متوجه شد که چقدره تا اگه از حجم کلی بکاپ برای اون درایو بیشتر میخواد بشه ، به کاربر هشدار داد؟
ممنون
 

the_king

مدیرکل انجمن
ممنون استاد علی
اینترفیس IVssDifferentialSoftwareSnapshotManagement انگار برای مدیریت حجم درایو برای شادو استوریج هست (هم ست کردن و هم تغییر سایز استوریج و احتمالا هم با متدهای بخش query اش ، جستجو و لیست کردن شادو استوریج درایوها)
ولی نمیدونم چجوری میشه برای استفاده از این اینترفیس ، ازش شی ایجاد کرد (حالا با استفاده از اعضای بقیه ی کلاس ها و ...) . توی هیچ کدوم از راهنماش ، درباره ی شی ساختنش توضیح نداده :

IVssDifferentialSoftwareSnapshotManagement Interface

از اینترفیس شیء ساختن بی معنیه، مثل اینه که بگید چطور از "خوشمزه" شیء بسازم، اینترفیس صرفا تعریفه، پیاده سازی نداره که بخواهید ازش شیء بسازید.
کد:
Alphaleonis.Win32.Vss.VssUtils.LoadImplementation().GetSnapshotManagementInterface();

بعد هم تفاوت دو آرگومان اول متد AddDiffArea ، یعنی volumeName و diffAreaVolumeName را دقیق متوجه نشدم چیه؟ هر دو نام یک درایو را میخوان؟
این متد AddDiffArea هم برای ست کردن شادو استورج برای اولین بار هست؟

معنی ساده اش اینه که وقتی از volumeName نسخه پشتیبان بگیرید در diffAreaVolumeName ذخیره بشه.
بله میتونه یکی باشه ولی فرضا وقتی درایو :E تون FAT32 ئه و میخواهید برایش diffAreaVolumeName ای انتخاب کنید طبعا نمی توانید خود :E را بکار ببرید چون diffAreaVolumeName باید از بین درایو های NTFS باشه.

بعد اینکه فرض کنید یه درایو 500 گیگ فضا داره . 100 گیگ حجم اطلاعات (استفاده شده) داره . 25 گیگ فضای کلی برای بکاپ براش اختصاص داده شده . االان ازش برای اولین بار بکاپ (کامل) گرفتیم و حجم این بکاپ 1 گیگ شده و بعد از مدتی ، 300 گیگ اطلاعات دیگه توی اون درایو اضافه میکنیم (که کلا میشه 400 گیگ اطلاعات) :
1) اگه الان یه بکاپ دیگه (کامل یا تفاوتی یا افزایشی) بگیریم ، شما میدونید حجم بکاپش چقدر میشه؟ یا تخمینا چقدر میشه؟ (اگه بکاپ تفاوتی بگیریم ، فکر نکنم حجم بکاپ مون تفاوت حجم اطلاعات در بکاپ جدید و بکاپ قبلی ، یعنی حجمش 300 گیگ بشه . حداقل در بکاپ های من که این جوری نمیشه و حجمش خیلی خیلی کمتره اما نمیدونم بر چه اساسه)

نحوه سوال پرسیدن تون نشون میده که همچنان تصور اشتباهی از Backup در vss دارید. انگار که براتون backup ئه vss مثل برنامه backup گیری پارتیشن ها است که الان پشتیبان بگیرید و یک image ای بسازه و تمام.
شما فکر می کنید vss وقتی قراره در این لحظه از داده فلان درایو backup بگیره پس باید همون موقع شروع کنه داده ها رو کپی کنه در backup ؟ که هر چقدر هم داده ها بیشتر باشه حجم backup بیشتر بشه؟ همچین چیزی نیست. مگه vss بر اساس Copy on write نیست؟ اینکه Copy on write نشد که من درخواست backup بدم و اونم همون موقع کپی بگیره. پس Write اش کو؟ داده های شما موقع backup گرفتن سرجاشون بودند، حتی قبل از backup گرفتن روی درایو بودند. اینجا write ای رخ نداده که Copy ای در کار باشه. برای همین Copy هم صورت نمی گیره. برای همین شما چه از 100 گیگابایت و چه از 400 گیگابایت backup بگیرید Write ای رخ نداده که Copy on write تاثیری بذاره. اینکه backup تون حجم اش در حد 1 گیگ یا حتی کمتر از اون بشه هیچ جای تعجبی نداره. چرا باید از اون 300 گیگ داده backup بگیره وقتی اون داده ها صحیح و سالم روی درایو هستند و تغییری هم نکرده اند؟

2) اگه حجم بکاپ جدیدمون از 25 گیگ بالاتر بزنه و ما فضای کلی برای بکاپ را هم افزایش نداده باشیم ، (بدون اطلاع ما) ویندوز بکاپ های قبلی را حذف میکنه و یه بکاپ کامل میگیره؟ دلیل حذف گاها بکاپ های من همین میتونه باشه؟ و اگه این درست هه ، قبل از عملیات بکاپ ، نمیشه یه جوری میزان حجم بکاپی که میخواد بگیره (و هنوز نگرفت) را متوجه شد که چقدره تا اگه از حجم کلی بکاپ برای اون درایو بیشتر میخواد بشه ، به کاربر هشدار داد؟
ممنون
ویندوز کاری رو بدون روال انجام نمیده، طبعا backup ای که خودش بگیره رو میتونه بدون اطلاع حذف کنه چون بر اساس نیاز خودش میتونه تشخیص بده که کی وجودش اضافیه. Cleanup های دوره ای هم که با Task هایی که در Task Scheduler هستند انجام میشه. اما اگه شما درخواستی داشته باشید که حجم مورد نیازش موجود نباشه با خطای Insufficient Storage اعلامش می کنه، نه اینکه براتون پاکسازی انجام بده. حجم backup هم مثل فایل zip نیست که بگید الان گرفتمش و شد 100 مگابایت و تمام. شما الان backup رو ایجاد می کنید که حجمش ناچیزه و به مرور که داده های روی درایو تغییر کردند حجم اون backup هم افزایش پیدا می کنه، ثابت نمیمونه. پس طبعا میتونه بدون در نظر گرفتن فشرده سازی و اطلاعات اضافی کم کم اونقدر بزرگ بشه که به حجم داده اولیه هم برسه. اینکه از درایو 100 گیگابایتی backup گرفتید و الان حجم backup اش 1 گیگابایت شده معنی اش این نیست که حجم اون backup تا آخر هفته همچنان 1 گیگابایت باقی میمونه. هشدار هم اینجا بی معنیه چون علم غیب ندارید، شما که نمیدونید در آینده چه میزان تغییرات رخ میده.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
خیلی ممنون استاد علی
لینک زیر (برای انتقال بکاپ) را ببینید :

Importing Transportable Shadow Copied Volumes - Windows applications

من این چیزا را ازش فهمیدم . ببینید درسته و همینطور سئوالاتی دارم . اول توضیح چیزهایی که فهمیدم رو طبق شماره گذاری در اون صفحه (که 9 تاست) بدم :

1) اول ، logical unit (LUN) که توسط آرایه ی storage تهیه میشه ، به عنوان یه ولوم و درایو در سیستم اول (سیستم اول ، همون سیستمی هست که ازش میخوایم بکاپ بگیریم و سیستم دوم ، سیستمی که بکاپ ها را توش میخوایم ریکاوری کنیم) ، mount میشه .
(من اصلا متوجه نشدم این شماره یک چی میگه . صرفا ترجمه بود)

2) یک requester در سیستم اول ، خودش را برای مراحل بکاپ گیری آماده میکنه (مثل شی ساختن از اینترفیس IVssBackupComponents و ... . البته میدونم از اینترفیس نمیشه شی ساخت و از متد VssUtils.LoadImplementation() استفاده میشه)

3) requester در سیستم اول ، context را برای شادو کپی ، اصلاح میکنه که باید توش مقدار VSS_VOLSNAP_ATTR_TRANSPORTABLE باشه. از اینام VSS_SNAPSHOT_CONTEXT هم هر مقدار مورد نظر (مثل VSS_CTX_BACKUP یا VSS_CTX_CLIENT_ACCESSIBLE_WRITERS) میتونه با مقدار VSS_VOLSNAP_ATTR_TRANSPORTABLE ، توسط عملگر or با هم شرکت کنن . مثلا VSS_CTX_CLIENT_ACCESSIBLE_WRITERS | VSS_VOLSNAP_ATTR_TRANSPORTABLE .

4) requester در سیستم اول ، با همین context (در بالا) ، توسط متد IVssBackupComponents::DoSnapshotSet شروع به ساخت بکاپ میکنه .

5) در سیستم اول ، از متد IVssBackupComponents::SaveAsXML برای ذخیره ی وضعیت موجود از سند Backup Components استفاده میشه و از متد IVssExamineWriterMetadata::SaveAsXML برای ذخیره سازی سند فراداده ی رایتر استفاده میشه (به عنوان فایل xml) . این رشته و فایل xml برای requester در سیستم دوم ، در دسترس باید قرار بگیره و به اون سیستم باید انتقال بدیم .

*** توجه کنید که اگه هدف از شادو کپی ، بکاپ هست ، پس requester در سیستم اول ، نباید شی IVssBackupComponents اش را در این نقطه از زمان و در این لحظه ، آزاد (dispose) کنه (اگه هدف از شادو کپی ، بکاپ نیست ، مشکلی برای dispose کردن شی اینترفیس در این لحظه هم نیست) . این اینترفیس باید باز نگه داشته بشه (dispose نشه) تا زمانی که سیستم دوم ، بصورت موفقیت آمیز عملیات بکاپ اش را تمام کنه . فقط پس از آن ، یک requester باید رویداد BackupComplete را فراخونی کنه .

6) سپس requester در سیستم دوم ، متد IVssBackupComponents::ImportSnapshots را فراخونی میکنه تا به شادو کپی ای که توسط requester در سیستم اول ایجاد شد ، دسترسی پیدا کنه .

7) requester در سیستم دوم ، دقیقا مثل بکاپ معمولی که رفتار میکنیم ، مثل همون فراآیند اش را انجام میده .

-- requester در سیستم دوم ، device object مربوط به هر شادو کپی و بکاپ را توسط متد IVssBackupComponents::GetSnapshotProperties در شادو کپی وارد شده ، بدست میاره (منظور از device object ، همون فیلد m_pwszSnapshotDeviceObject در استراکچر VSS_SNAPSHOT_PROP هست که از نوع رشته هست) و این رشته را به شروع مسیر فایل اصلی که از فراداده (metadata در فایل xml قبل) گرفته شدند ، الحاق میکنه تا به فایل ها برای بکاپ گیری دسترسی پیدا کنه .

8) پس از استفاده از شادو کپی ، requester در سیستم دوم باید شادو کپی را حذف کنه .
اگه نوع بکاپ مون persistence نبوده باشه ، با آزاد شدن شی IVssBackupComponents ، بکاپ مون هم اتوماتیک حذف میشه وگرنه خود requester باید بصورت صریح بکاپ را حذف کنه .
پس requester در سیستم دوم ، به requester در سیستم اول ، سیگنال میفرسته که کارش با بکاپ انتقال یافته تمام شد .

9) بعد از اینکه requester در سیستم اول ، این سیگنال و نوتیفیکیشن را دریافت کرد که کار بکاپ در سیستم دوم تمام شد ، در سیستم خودش ، به رایترها توسط رویداد IVssBackupComponents::BackupComplete ، نوتیفیکیشن و سیگنال میفرسته . در این لحظه ، requester در سیستم اول ، شی IVssBackupComponents را آزاد (dispose) میکنه .


--------------------------------------------------------------------------------------------------------------------------


حالا سئوالاتم :
1) اصلا واقعا همچین چیزی امکان داره؟ یعنی واقعا میشه بکاپ های vss از یک درایوی که مثلا 200 گیگ اطلاعات داره ولی بکاپی که ازش تهیه کردیم در حد 1 گیگ هست را توی سیستم توسط این 1 گیگ ، کل اون 200 گیگ را منتقل و ریکاوری کنیم؟! اگه شدنی هست ، پس لطفا بخش های بعدی سئوالاتم (در زیر) را هم جواب بدین وگرنه جواب ندین .

2) بخش 1 را متوجه نشدم چی میگه .

3) با حالت ترنسپورتیبل (حالتی که بکاپ ها را میخوایم انتقال بدیم تا توی سیستم دیگه ریکاوری کنیم) ، میشه ترکیب VSS_CTX_CLIENT_ACCESSIBLE_WRITERS | VSS_VOLSNAP_ATTR_TRANSPORTABLE را ست کرد دیگه؟

4) در قسمت پنجم (قسمت ستاره دار) ، من ربط سیستم اول و دوم رو متوجه نشدم که در این قسمت میگه اینترفیس IVssBackupComponents در سیستم اول ، باید باز نگه داشته بشه (dispose نشه) تا زمانی که سیستم دوم ، بصورت موفقیت آمیز عملیات بکاپ اش را تمام کنه ؟!!
اصلا سیستم دوم از کجا یخواد بفهمه سیستم اول اصلا روشن هست ، چه برسه به اینکه بفهمه برنامه ی requester در سیستم اول باز هست یا نه و چه برسه بفهمه اینترفیس IVssBackupComponents در سیستم اول هنوز dispose شد یا نشد؟
تازه فرضا بفهمه ، چه فایده ای براش داره؟!!

5) در بخش 6 ، متد ImportSnapshots که ورودی ای نداره که فایل xml را که در سیستم اول درست شد را وارد سیستم دوم کنه . پس این فایل xml چجوری وارد سیستم دوم میشه؟
فقط متد IVssBackupComponents.InitializeForBackup ، ورودی رشته ی xml میگیره که در این راهنما اشاره نکرد که ازش استفاده کنیم . باید از این متد InitializeForBackup برای xml استفاده کنیم؟

6) بخش 7 ، قسمت دو خط چین (--) را دقیق متوجه نشدم .

خیلی ممنونم .
 

the_king

مدیرکل انجمن
ابتدا در نظر بگیرید که وقتی می توانید مطلبی رو درست ترجمه کنید که اصطلاحاتش براتون نا آشنا نباشه، اگر می بینید اصطلاحی بکار رفته که معنی شو متوجه نمیشید اول باید دنبال معنی اون اصطلاح بگردید، وگرنه ترجمه ای می کنید که مطلب رو نمی رسونه. شما روی سیستم شماره یک، آرایه ای از رسانه های ذخیره سازی دارید، فرضا یک هارد دیسک تقسیم شده به چندین درایو که هر درایو بصورت یک volume در اون آرایه قابل دسترسی ئه. حالا وقتی ارتباط با سیستم شماره دو از طریق شبکه برقرار میشه می خواهید رسانه ذخیره سازی سیستم دوم رو در سیستم اول ببینید و بهش دسترسی داشته باشید. برای اینکار یک volume ای که در اون سیستم دوم بوده رو به عنوان یک volume در آرایه سیستم یک mount می کنید. همانطور که وقتی فلش درایو رو به سیستم اضافه می کنید با نام :F درایوش mount میشه، با این تفاوت که مثل فلش درایو محل فیزیکی اش روی خود سیستم نیست، روی سیستم دوم ئه.
حالا سئوالاتم :
1) اصلا واقعا همچین چیزی امکان داره؟ یعنی واقعا میشه بکاپ های vss از یک درایوی که مثلا 200 گیگ اطلاعات داره ولی بکاپی که ازش تهیه کردیم در حد 1 گیگ هست را توی سیستم توسط این 1 گیگ ، کل اون 200 گیگ را منتقل و ریکاوری کنیم؟! اگه شدنی هست ، پس لطفا بخش های بعدی سئوالاتم (در زیر) را هم جواب بدین وگرنه جواب ندین .

نه. شدنی نیست. نه تنها نتیجه گیری تون اشتباهه، فرض تونم اشتباهه. از خود VSS رو یک چیز دیگه برداشت کردید، برای همین از مطالب Importing Transportable Shadow Copied Volumes هم برداشت اشتباهی می کنید. تا وقتی تصورتون از پشتیبانگیری و ریکاوری درست نباشه، نتیجه گیری هاتون اشتباه میشه. فرض کنید که VSS یک نگهبان ئه. شما بهش گفتید آقای نگهبان، مراقب کل محتویات درایو :C باش، میگه باشه، میاد از وضعیت فعلی درایو :C یک لیست تهیه میکنه که چه فایل هایی داخلش هست، این میشه backup فعلی شما. حجمش هم زیاد نیست چون الان داده های داخل فایل ها رو که ذخیره نمی کنه، قراره مراقب تغییرات باشه. شما backup رو ساختید ولی این نگهبان دیگه تا آخر عمر درگیر درخواست شما شده، چون هیچوقت نمیتونه بره مرخصی و تغییرات رو بیخیال بشه. چشمش همیشه به تغییرات :C میمونه. باید همیشه حواسش به اون :C باشه تا هر تغییری که رخ میده در backup ثبت کنه تا بعدا موقع برگردوندن چیزی کم نباشه. هر زمان فایلی تغییر کرد یا حذف شد، باید اول نسخه قبلی داده رو در backup بنویسه و بعد اجازه تغییرات رو بده. اونم نه کل داده ها، فقط بخشی که تغییر کرده، اگر فایل حذف شده طبعا همه داده های فایل لازمه. هر زمان هم که درخواست restore بدید، هر تغییراتی که در backup هست سر جاش بازیابی میشه. این backup اصلا و ابدا بدرد کپی سازی از :C نمیخوره، فقط برای بازگرداندن :C به وضعیت گذشته شه. برای اینکه در backup فقط و فقط اطلاعات تغییرات موجوده، فرضا فایلی که تغییر نداشته اصلا در backup داده هاش نیست چه برسه به اینکه بتونه رکاوری بشه. فایلی هم که بعدا به درایو اضافه شده حجمش هر چقدر هم باشه ربطی به backup تون نداره چون موقع backup گیری در لیست نبوده و به نگهبان نسپرده بودیدش، تغییر هم بکنه نگهبان کاریش نداره.

حالا شما دارید backup ای میسازید که محل ذخیره سازی اش بجای سیستم یک در در سیستم دوم ئه، یعنی نگهبان تغییرات لحظه ای رو در سیستم دوم ثبت میکنه. این معنی اش اینه که همیشه سیستم دوم به سیستم اول متصل میمونه. اگر بعد از backup گیری ارتباط بین سیستم ها قطع بشه دیگه نگهبان نمیتونه تغییرات رو در backup بنویسه و backup کارایی شو از دست میده. backup ای که در حد یک گیگابایت ئه رو که نمی برید رو یک سیستم مستقل restore کنید. اون backup فقط و فقط میتونه همون :C در سیستم یک رو به وضعیت قبلی برگردونه، نمیتونه سیستم دیگری رو کپی :C سیستم یک کنه. برای همین یک گیگابایت بودنش فقط نشونه اینه که از لحظه backup گیری تا حالا تغییرات زیادی رخ نداده. همین. تغییرات که زیاد شد اون یک گیگابایت میتونه بشه ده گیگابایت.
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
ابتدا در نظر بگیرید که وقتی می توانید مطلبی رو درست ترجمه کنید که اصطلاحاتش براتون نا آشنا نباشه، اگر می بینید اصطلاحی بکار رفته که معنی شو متوجه نمیشید اول باید دنبال معنی اون اصطلاح بگردید، وگرنه ترجمه ای می کنید که مطلب رو نمی رسونه. شما روی سیستم شماره یک، آرایه ای از رسانه های ذخیره سازی دارید، فرضا یک هارد دیسک تقسیم شده به چندین درایو که هر درایو بصورت یک volume در اون آرایه قابل دسترسی ئه. حالا وقتی ارتباط با سیستم شماره دو از طریق شبکه برقرار میشه می خواهید رسانه ذخیره سازی سیستم دوم رو در سیستم اول ببینید و بهش دسترسی داشته باشید. برای اینکار یک volume ای که در اون سیستم دوم بوده رو به عنوان یک volume در آرایه سیستم یک mount می کنید. همانطور که وقتی فلش درایو رو به سیستم اضافه می کنید با نام :F درایوش mount میشه، با این تفاوت که مثل فلش درایو محل فیزیکی اش روی خود سیستم نیست، روی سیستم دوم ئه.

نه. شدنی نیست. نه تنها نتیجه گیری تون اشتباهه، فرض تونم اشتباهه. از خود VSS رو یک چیز دیگه برداشت کردید، برای همین از مطالب Importing Transportable Shadow Copied Volumes هم برداشت اشتباهی می کنید. تا وقتی تصورتون از پشتیبانگیری و ریکاوری درست نباشه، نتیجه گیری هاتون اشتباه میشه. فرض کنید که VSS یک نگهبان ئه. شما بهش گفتید آقای نگهبان، مراقب کل محتویات درایو :C باش، میگه باشه، میاد از وضعیت فعلی درایو :C یک لیست تهیه میکنه که چه فایل هایی داخلش هست، این میشه backup فعلی شما. حجمش هم زیاد نیست چون الان داده های داخل فایل ها رو که ذخیره نمی کنه، قراره مراقب تغییرات باشه. شما backup رو ساختید ولی این نگهبان دیگه تا آخر عمر درگیر درخواست شما شده، چون هیچوقت نمیتونه بره مرخصی و تغییرات رو بیخیال بشه. چشمش همیشه به تغییرات :C میمونه. باید همیشه حواسش به اون :C باشه تا هر تغییری که رخ میده در backup ثبت کنه تا بعدا موقع برگردوندن چیزی کم نباشه. هر زمان فایلی تغییر کرد یا حذف شد، باید اول نسخه قبلی داده رو در backup بنویسه و بعد اجازه تغییرات رو بده. اونم نه کل داده ها، فقط بخشی که تغییر کرده، اگر فایل حذف شده طبعا همه داده های فایل لازمه. هر زمان هم که درخواست restore بدید، هر تغییراتی که در backup هست سر جاش بازیابی میشه. این backup اصلا و ابدا بدرد کپی سازی از :C نمیخوره، فقط برای بازگرداندن :C به وضعیت گذشته شه. برای اینکه در backup فقط و فقط اطلاعات تغییرات موجوده، فرضا فایلی که تغییر نداشته اصلا در backup داده هاش نیست چه برسه به اینکه بتونه رکاوری بشه. فایلی هم که بعدا به درایو اضافه شده حجمش هر چقدر هم باشه ربطی به backup تون نداره چون موقع backup گیری در لیست نبوده و به نگهبان نسپرده بودیدش، تغییر هم بکنه نگهبان کاریش نداره.

حالا شما دارید backup ای میسازید که محل ذخیره سازی اش بجای سیستم یک در در سیستم دوم ئه، یعنی نگهبان تغییرات لحظه ای رو در سیستم دوم ثبت میکنه. این معنی اش اینه که همیشه سیستم دوم به سیستم اول متصل میمونه. اگر بعد از backup گیری ارتباط بین سیستم ها قطع بشه دیگه نگهبان نمیتونه تغییرات رو در backup بنویسه و backup کارایی شو از دست میده. backup ای که در حد یک گیگابایت ئه رو که نمی برید رو یک سیستم مستقل restore کنید. اون backup فقط و فقط میتونه همون :C در سیستم یک رو به وضعیت قبلی برگردونه، نمیتونه سیستم دیگری رو کپی :C سیستم یک کنه. برای همین یک گیگابایت بودنش فقط نشونه اینه که از لحظه backup گیری تا حالا تغییرات زیادی رخ نداده. همین. تغییرات که زیاد شد اون یک گیگابایت میتونه بشه ده گیگابایت.

خیلی ممنونم استاد علی
آها الان یعنی منظورتون اینه؟ :
وقتی بکاپ کامل میگیریم ، اولا فقط لیستی از فایل ها توی بکاپ ذخیره میشن (ولی بصورت واقعی بکاپ گرفته نمیشه) و دوما از این به بعد منتظر میمونه تا ببینه کدوم یک از فایل ها تغییر میکنه یا حذف میشه تا در اون صورت ازش یک شادو (یا یه نسخه) در خودش ایجاد کنه بنابراین فقط فایل هایی که تا زمان همون بکاپ گیری وجود داشتند ، هر چی تغییرات یا حذفیاتشون بیشتر باشه ، حجم فایل بکاپ مون دقیقا به اندازه ی این تغییرات یا حذفیات بالاتر میره . یعنی حجم یه فایل بکاپ ، دائم در حال تغییر ممکنه باشه . (این تغییر حجم فایل بکاپ ، ربطی هم به این نداره که بکاپ جدید دیگه ای تهیه کنیم یا نه) .
درسته؟


اگه این طوره ، پس مشخص کردن نوع بکاپ که معنی نداره . یعنی توی متد SetBackupState ، نباید فرقی کنه که نوع بکاپ را کامل ، افزایشی یا کاهشی بذاریم . درسته؟ درباره ی همین قضیه (بکاپ افزایشی و کاهشی و کامل) و رابطه اش با مسئله ی بالا توضیح میدین؟

بعد اینکه پس الان میتونیم متوجه بشیم که حجم فایل بکاپ مون چقدر میشه . درسته؟ چون حجم شون به اندازه ی تغییرات میشه ، پس میتونیم با نظارت بر تغییرات اون درایو و قبل از پر شدن فضای اختصاصی برای shadow storage در اون درایو ، resize اش کنیم . درسته؟
 
آخرین ویرایش:

the_king

مدیرکل انجمن
خیلی ممنونم استاد علی
آها الان یعنی منظورتون اینه؟ :
وقتی بکاپ کامل میگیریم ، اولا فقط لیستی از فایل ها توی بکاپ ذخیره میشن (ولی بصورت واقعی بکاپ گرفته نمیشه) و دوما از این به بعد منتظر میمونه تا ببینه کدوم یک از فایل ها تغییر میکنه یا حذف میشه تا در اون صورت ازش یک شادو (یا یه نسخه) در خودش ایجاد کنه بنابراین فقط فایل هایی که تا زمان همون بکاپ گیری وجود داشتند ، هر چی تغییرات یا حذفیاتشون بیشتر باشه ، حجم فایل بکاپ مون دقیقا به اندازه ی این تغییرات یا حذفیات بالاتر میره . یعنی حجم یه فایل بکاپ ، دائم در حال تغییر ممکنه باشه .

درسته. طبعا وقتی backup جدیدی تهیه کنید همین کار ها برای اون backup دوم هم انجام میشه، یعنی کار نگهبان رو بیشتر کردید چون هم باید backup قبلی رو بروز کنه و هم backup جدید.
این توضیحی که دادم ربطی به backup کامل و غیر کامل نداره، شامل همه انواع backup میشه. اما وقتی backup نسبت به backup دیگری باشه مبنای تغییرات اون backup قبلی ئه.
(این تغییر حجم فایل بکاپ ، ربطی هم به این نداره که بکاپ جدید دیگه ای تهیه کنیم یا نه) .
درسته؟

درسته، backup جدید نمیتونه و نباید تاثیری روی اعتبار backup قبلی بذاره، برای همین backup قبلی باید با تغییرات بروز بشه. اما فرضا وقتی فایلی حذف شد و مجددا فایلی با همون نام ساخته شد دیگه فایل دوم ربطی به backup نداره که مجددا داده هاش ثبت بشه، یا فرضا اگر بخشی از داده های یک فایل چند بار تغییر کرد صرفا همون بار اول داده ها ثبت میشه و تغییرات بعدی در همون موقعیت ربطی به اون backup نداره چون برای restore کردن فقط به داده هایی داره که فایل در ابتدای کار داشت، داده هایی که در تغییرات میانی فایل بودند برایش کاربردی نداره.

اگه این طوره ، پس مشخص کردن نوع بکاپ که معنی نداره . یعنی توی متد SetBackupState ، نباید فرقی کنه که نوع بکاپ را کامل ، افزایشی یا کاهشی بذاریم . درسته؟ درباره ی همین قضیه (بکاپ افزایشی و کاهشی و کامل) و رابطه اش با مسئله ی بالا توضیح میدین؟
چطور به این نتیجه رسیدید؟ کاملا معنی داره. در ضمن چیزی به نام backup کاهشی نداریم. backup های کامل مستقل هستند ولی backup های افزایشی و تفاضلی مبناشون یک backup قبلی ئه.
backup افزایشی مبناش یک backup قبلی مشخص ئه که میتونه خودش یک backup کامل یا افزایشی یا تفاضلی باشه، و تغییرات رو نسبت به اون ذخیره می کنه. طبعا شروع زنجیره backup ها یک backup کامل ئه.
backup افزایشی بدون backup قبلی اعتباری نداره و اگه قرار باشه اون قبلی حذف بشه اونم باید حذف بشه. اشتراک داده ها بین دو backup باعث میشه که در حجم backup جدید صرفه جویی بشه چون تغییراتی که در backup قبلی ثبت میشه در backup جدید مجددا ثبت نمیشه.
backup تفاضلی شبیه backup افزایشی ئه با این تفاوت که مبناش فقط و فقط یک backup از نوع کامل ئه.
هر دو نوع backup افزایشی و تفاضلی نسبت به backup گیری کامل مجدد صرفه جویی در حجم رو به دنبال دارند، اما در مقابل سربار بررسی backup های قبلی سرعت بروز رسانی backup و restore شون رو کاهش میده.

بعد اینکه پس الان میتونیم متوجه بشیم که حجم فایل بکاپ مون چقدر میشه . درسته؟ چون حجم شون به اندازه ی تغییرات میشه ، پس میتونیم با نظارت بر تغییرات اون درایو و قبل از پر شدن فضای اختصاصی برای shadow storage در اون درایو ، resize اش کنیم . درسته؟
حرفتون منطقی ئه، اما دو تا فرض می کنید که اجراشون مساله است. اولا اینکه بتوانیم و به صرفه باشه که نظارت بر تغییرات اون درایو بکنیم، و ثانیا بتوانیم اون زمان که لازم شد در اون درایو ، resize اش کنیم. فرضا شما نمی توانید در یک درایو 500 گیگابایتی از 300 گیگابایت داده حفاظت کنید وقتی نهایتا 200 گیگابایت جا برای ثبت تغییرات دارید. یا آیا می خواهید یا چرا میخواهید جلوی کپی شدن فایل های جدید و پر شدن درایو را بگیرید، فقط به این خاطر که اگه فایل های قدیمی تغییر کردند، جا برای افزایش فضای shadow storage باشه؟
 

SajjadKhati

کاربر فعال <A href="http://forum.majidonline.com/f
درسته. طبعا وقتی backup جدیدی تهیه کنید همین کار ها برای اون backup دوم هم انجام میشه، یعنی کار نگهبان رو بیشتر کردید چون هم باید backup قبلی رو بروز کنه و هم backup جدید.
این توضیحی که دادم ربطی به backup کامل و غیر کامل نداره، شامل همه انواع backup میشه. اما وقتی backup نسبت به backup دیگری باشه مبنای تغییرات اون backup قبلی ئه.

درسته، backup جدید نمیتونه و نباید تاثیری روی اعتبار backup قبلی بذاره، برای همین backup قبلی باید با تغییرات بروز بشه. اما فرضا وقتی فایلی حذف شد و مجددا فایلی با همون نام ساخته شد دیگه فایل دوم ربطی به backup نداره که مجددا داده هاش ثبت بشه، یا فرضا اگر بخشی از داده های یک فایل چند بار تغییر کرد صرفا همون بار اول داده ها ثبت میشه و تغییرات بعدی در همون موقعیت ربطی به اون backup نداره چون برای restore کردن فقط به داده هایی داره که فایل در ابتدای کار داشت، داده هایی که در تغییرات میانی فایل بودند برایش کاربردی نداره.


چطور به این نتیجه رسیدید؟ کاملا معنی داره. در ضمن چیزی به نام backup کاهشی نداریم. backup های کامل مستقل هستند ولی backup های افزایشی و تفاضلی مبناشون یک backup قبلی ئه.
backup افزایشی مبناش یک backup قبلی مشخص ئه که میتونه خودش یک backup کامل یا افزایشی یا تفاضلی باشه، و تغییرات رو نسبت به اون ذخیره می کنه. طبعا شروع زنجیره backup ها یک backup کامل ئه.
backup افزایشی بدون backup قبلی اعتباری نداره و اگه قرار باشه اون قبلی حذف بشه اونم باید حذف بشه. اشتراک داده ها بین دو backup باعث میشه که در حجم backup جدید صرفه جویی بشه چون تغییراتی که در backup قبلی ثبت میشه در backup جدید مجددا ثبت نمیشه.
backup تفاضلی شبیه backup افزایشی ئه با این تفاوت که مبناش فقط و فقط یک backup از نوع کامل ئه.
هر دو نوع backup افزایشی و تفاضلی نسبت به backup گیری کامل مجدد صرفه جویی در حجم رو به دنبال دارند، اما در مقابل سربار بررسی backup های قبلی سرعت بروز رسانی backup و restore شون رو کاهش میده.


حرفتون منطقی ئه، اما دو تا فرض می کنید که اجراشون مساله است. اولا اینکه بتوانیم و به صرفه باشه که نظارت بر تغییرات اون درایو بکنیم، و ثانیا بتوانیم اون زمان که لازم شد در اون درایو ، resize اش کنیم. فرضا شما نمی توانید در یک درایو 500 گیگابایتی از 300 گیگابایت داده حفاظت کنید وقتی نهایتا 200 گیگابایت جا برای ثبت تغییرات دارید. یا آیا می خواهید یا چرا میخواهید جلوی کپی شدن فایل های جدید و پر شدن درایو را بگیرید، فقط به این خاطر که اگه فایل های قدیمی تغییر کردند، جا برای افزایش فضای shadow storage باشه؟

خیلی ممنونم استاد علی
الان من یه بکاپ دارم از درایو f ام و حجمش 25 مگابایت بود. فایلی که 800 مگابایت بود را از توی درایو حذف کردم (این بکاپ شامل این فایل هم میشه) . بعد از حذف ، حجم بکاپ 31 مگابایت شد . یعنی 6 مگابایت فقط افزایش پیدا کرد . بعد هم فایل حذف شده را ریکاوری کردم .
روندش چجوری هه؟!
اگه این روند میبود ، باید 800 مگ به حجم بکاپ اضافه میشد ولی این 6 مگ فقط اضافه شد.
 

جدیدترین ارسال ها

بالا