دوره‌ های آموزشی نووا
نوامبر 20, 2018

مثالهای کاربردی از دستور RoboCopy

Avatar photo
برنامه نویس MERN Stack
مثالهای کاربردی از دستور RoboCopy

دستور RoboCopy که به آن Robust Copy هم گفته میشود یک برنامه فوقالعاده در زمینه بکاپ گیری از فایلها و پوشه ها در خط فرمان ویندوز است. با استفاده از دستور RoboCopy میتوان به هر نحو که نیاز باشد از دایرکتوری ها و فایلها کپی گرفت و آنها را در یک مقصد مشخصی ذخیره نمود. در این آموزش قصد دارم شما را با چند مثال کاربردی از دستور RoboCopy آشنا کنم، پس در ادامه همراه با نووا بلاگ باشید.

مثلا اول: کپی گرفتن ساده از کلیه فایلها و دایرکتوری ها

برای کپی گرفتن از کلیه فایلها و دایرکتوری ها با دستور RoboCopy میبایست ابتدا مسیری را مشخص کنید که میخواهید فایلها و دایرکتوری های شما از آن مسیر کپی گرفته شوند سپس مسیر مقصد را مشخص کنید تا فایلها در آنجا ایجاد شوند. از پارامتر /S یا /E میتوان برای کپی گرفتن از همه پوشه های زیر مجموع استفاده نمود. برای مثال:

RoboCopy D:\MyData F:\Backup /E

در دستور بالا کلیه فایلها و پوشه های موجود در درایو D:\ پوشه MyData به درایو F:\ پوشه Backup کپی میشوند. اگر روی فایلها و یا دایرکتوری ها مجوز (Access Control List) تنظیم نمودید و حساب کاربری شما هم توانایی دسترسی به فایلها را ندارد، میتوانید از پارامتر /B استفاده کنید تا فایلها و دایرکتوری ها با مجوز SeBackupPrivilege و SeRestorePrivilege خوانده و در مقصد نوشته شوند. برای مثال:

RoboCopy D:\MyData F:\Backup /E /B

نکته: دستور RoboCopy به صورت پیش فرض فایلها و دایرکتوری های که Timestamp آنها تغییر ننموده باشد را باز نویسی (Overwrite) نمیکند. پس میتوانید بعد از انجام تغیرات روزانه و یا هفته ای دوباره از دستور RoboCopy استفاده کنید تا فقط فایلهای ویرایش شده یا بروز رسانی شده در مبدا در دایرکتوری مقصد باز نویسی شوند. (Incremental Backup)

مثال دوم: ساخت یک سیستم بکاپ با پارامتر Mir

با استفاده از پارامتر Mir میتوانید یک سیستم بکاپ حرفه ای بسازید که تمام تغیرات را دنبال کرده و پس از تشخیص تغیرات جدید آنها را در مقصد اعمال کند. پارامتر Mir میتواند از کلیه فایلها و دایرکتوری های مبدا به صورت کامل کپی گرفته و آنها را در مقصد ایجاد کند همراه با پارامتر Mir نیاز به استفاده از پارامتر های /S و /E نمیباشد چراکه خود پارامتر Mir شامل این پارامتر ها هم میباشد.

RoboCopy D:\MyData F:\Backup /MIR

در دستور بالا از کلیه داده های درایو D:\ پوشه MyData در درایو F:\ پوشه Backup کپی گرفته میشود.

نکته مهم: توجه کنید پارامتر Mir کلیه فایلها و دایرکتوری های مسیر مبدا را بررسی کرده و اگر فایل و یا دایرکتوری از مبدا حذف شده باشد و یا در مقصد اضافی باشد آنها را به صورت کامل از مسیر مقصد هم حذف میکند. اگر نمی خواهید فایلها و دایرکتوری های اضافی از مقصد حذف شوند باید از پارامتر /XX در کنار پارامتر /Mir استفاده کنید. برای مثال:

RoboCopy D:\MyData F:\Backup /MIR /XX

مثال سوم: بررسی مبدا و کپی گرفتن بر اساس تعداد تغیرات

با استفاده از پارامتر های MON و MOT میتوانید مسیر مبدا را مانیتور کرده و پس از رسیدن به تعداد تغیرات مشخص در مبدا، فایلهای ویرایش شده یا بروز رسانی شده را در مقصد باز نویسی کنید. ترکیب پارامترهای MIR و MON و MOT بسیار کاربردی میباشد. به مثال زیر توجه کنید:

RoboCopy D:\MyData F:\Backup /MON:3 /MOT:60 /MIR /XX

در دستور بالا با پارامتر MON و MOT گفته شده اگر بیش از 3 تغییر در فایلها و دایرکتوری ها ایجاد شد و بیش از 60 دقیقه هم گذشت دستور RoboCopy باید فایلهای ویرایش شده را، در مقصد باز نویسی کند.

مثال چهارم: کپی گرفتن از فایلها و دایرکتوری ها به همراه مجوز آنها

با استفاده از پارامتر های Copy و DCopy میتوان عنصر های که باید کپی شوند را مشخص نمود. مثلا میتوان با استفاده از پارامتر Copy مشخص کرد فایلها به همراه مجوز (File Permission) آنها در مقصد کپی شوند. به مثال زیر توجه کنید:

RoboCopy D:\MyData F:\Backup /COPY:DATS /E

در دستور بالا گفته شده کلیه فایلها و دایرکتوری ها باید به همراه مجوز آنها کپی شوند. جدا از پارامتر /COPY:DATS میتوان از پارامتر /Sec هم استفاده نمود چراکه دقیقا همانند پارامتر /COPY:DATS عمل میکند. برای کپی گرفتن از کلیه عناصر فایلها میتوانید از پارامتر /COPYALL استفاده کنید.

مثال پنجم: کپی گرفتن فقط از مجوز فایلها

برای اینکه فقط از مجوز فایلها کپی بگیرید میبایست از پارامتر /COPY:S به همراه پارامتر /SECFIX استفاده کنید. به مثال زیر توجه کنید:

RoboCopy D:\MyData F:\Backup /COPY:S /SECFIX /E

در دستور بالا مجوز کلیه فایلها و دایرکتوری های داریو D:\ پوشه MyData به درایو F:\ پوشه Backup منتقل میشوند. توجه کنید استفاده از پارامتر /SECFIX ضروری میباشد و در صورت استفاده نکردن از این پارامتر با خطا مواجه خواهید شد.

مثال ششم: انتقال فایلها توسط تاریخ دسترسی

دستور RoboCopy دارای پارامتر های فراوانی در زمینه انتخاب فایلها میباشد مثلا میتوان با استفاده از پارامتر MINLAD مشخص نمود، فایلهای که از یک تاریخ مشخص به بعد به آنها دسترسی نداشته اید به یک پوشه مشخصی منتقل (Cut) شوند. برای مثال:

RoboCopy D:\MyData F:\UnusedData /MINLAD:90 /Move /E

در دستور بالا مشخص شده کلیه فایلها و دایرکتوری های که تا 90 روز قبل به آنها هیچ دسترسی نداشته اید باید به درایو F:\ پوشه UnusedData منتقل شوند. (گزینه Move فایلها و دایرکتوری ها را کپی کرده و از مبدا حذف میکند.)

همچنین میتوانید در جلوی پارامتر /MINLAD بجای تعداد روز ها از یک تاریخ مشخص استفاده کنید. مثلا برای مشخص نمودن فایلهای که تا تاریخ 2018/11/20 به آنها دسترسی نداشته اید باید به صورت زیر عمل کنید.

RoboCopy D:\MyData F:\UnusedData /MINLAD:20181120 /Move /E

در دستور بالا مشخص شده کلیه فایلهای که تا تاریخ 2018/11/20 به آنها دسترسی نداشته اید باید به پوشه UnusedData منتقل شوند.

مثال هفتم: بکاپ گرفتن از فایلها و دایرکتوری ها در سطح شبکه

از ویژگیهای کاربردی دستور RoboCopy بکاپ گیری از فایلها در سطح شبکه است یعنی میتوان با استفاده از این دستور فایلها و دایرکتوری ها را از طریق شبکه به دیسک ذخیره کننده در سطح شبکه منتقل نمود. همچنین برای این منظور چندین پارامتر وجود دارد که این دستور را کاملا کاربردی نموده اند. مثلا میتوان با استفاده از پارامتر /z فایلها را به صورت Restartable کپی نمود تا اگر ارتباط با شبکه قطع شد بعدا از ادامه فرایند کپی، کپی گرفتن انجام شود. برای مثال:

RoboCopy D:\MyData \\Backup-Storage\MyData-Backup /Z /E

در دستور بالا گفته شده فایلها و دایرکتوری های درایو D:\ پوشه MyData باید به آدرس Backup-Storage و پوشه به اشتراک گذاشته شده MyData-Backup کپی شوند. همچنین اگر نمی خواهید در حین کپی شدن داده ها کل Bandwidth شبکه را اشغال کنید باید از پارامتر /IPG هم استفاده کنید. برای مثال:

RoboCopy D:\MyData \\192.168.1.144\MyData-Backup /ZB /IPG:100 /E

در دستور بالا مشخص شده کلیه فایلهای درایو D:\ پوشه MyData باید به آدرس 192.168.1.44 پوشه به اشتراک گذاشته شده MyData-Backup کپی شوند. همچنین ابتدا سعی شود فایلها به صورت Restartable Mode کپی شوند و اگر با خطا مواجه شد به صورت Backup Mode کپی شوند. پارامتر /IPG باعث میشود کل پهنای باند توسط دستور RoboCopy مشغول نشود.

9 پاسخ به “مثالهای کاربردی از دستور RoboCopy”

  1. Avatar photo نیما رعیتی گفت:

    سلام
    ممنون از توضیحاتتون در مورد Robocopy
    از اینکه علمتون رو به اشتراک میذارید سپاسگذارم

    خواستم بپرسم آیا میشه scadule براش تعریف کرد که اوتوماتیک مثلا هفته ای یکبار کپی رو انجام بده؟

  2. Avatar photo کامران گفت:

    سلام و تشکر از مقاله بسیار کاربردی شما
    به چه صورت می توان با کمک این دستور داخل یک فولدر که دارای فولدرهای بسیاری میباشد همه فولدرها به جز یکی را کپی یا بک آپ گرفت

    با تشکر فراوان

  3. Avatar photo رضا گفت:

    کاش یه تلفن برای بخ تماس با ما می زاشتی

  4. Avatar photo سام گفت:

    سلام مهندس خسته نباشید ببخشید اون سایت قبلی چی شد توی اون سایت قبلی مطالب خیلی زیادی وجود داشت کاش در کنار این سایت او سایت قبلی تون هم باشه مثلا دستورات خط فرمان در سایت قبلی تون خیلی بیشتر از اینا بود لطفا اون سایت قبلی رو هم فعال کنید متشکرم .

  5. Avatar photo حسن آقا گفت:

    بی نظیر دمتون گرم ، این واستون میمونه که یاد پست خوشکلی مثل این درست کردید ♥

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *