چگونه دو پوشه در ویندوز را هماهنگ کنیم
مهر 6, 1403 1403-08-05 15:11چگونه دو پوشه در ویندوز را هماهنگ کنیم
چگونه دو پوشه در ویندوز را هماهنگ کنیم
یکی از مهمترین کارهایی که ادمینهای شبکه باید انجام بدهند این است که نسخههای پشتیبان بروزی داشته باشند و سناریوهای مختلفی برای تهیه نسخه پشتیبان داشته باشند. یکی از این سناریوهای تهیه نسخه پشتیبان در شرکتی که مشغول به کار هستم پیاده میشود رایت پایگاههایداده مهم بر روی بر روی DVD است. یکی از چالشهای من جمع آوری این پایگاههایداده در یک محل مجتمع بود که باید به صورت دستی از هر سرور پایگاهداده را کپی میکردم و بعد اقدام به رایت آن بر روی DVD میکردم. از این رو به دنبال راهی برای ساده سازی و و خودکارسازی این فرایند گشتم که نتیجه آن چند روش برای همگام سازی دو پوشه با در نظر گرفتن شرایط مختلف بود که در این مقاله قصد دارم با شما به اشتراک بگذارم.
دستور Robocopy
اولین موردی که به آن رسیدم دستور Robocopy در cmd ویندوز بود که شالوده تمامی روشهای بعدی که معرفی خواهند شد نیز میباشد. Robocopy دستوری برای کپی یا انتقال فایل از یک مقصد به مقصد دیگر با امکانات متفاوت و زیاد است. نحو این دستور بصورت زیر است:
ROBOCOPY source destination [file [file]…] [options]
بیایید برای دستگرمی بصورت پایه با این دستور کار کنیم. قبل این که شروع به استفاده از این دستور کنیم یک سناریوی کلی برای این مقاله در نظر میگیرم و تا آخر مقاله همان را بسط خواهم داد. فرض میکنیم پوشه اصلی ما در مسیر D:src و پوشه هدف در مسیر C:dest قرار دارد.
robocopy d:src c:dest
دستور بالا پایهای ترین استفاده از دستور Robocopy است که همه محتویات پوشه اصلی را در پوشه دوم کپی میکند.

اما اگر بخواهیم یک فایل خاص را جابهجا کنیم باید نام آن را کامل بنویسیم:
robocopy d:src c:dest a.jpg
همچنین استفاده از Wildcardهای * و ? نیز برای افزودن شرط به نام فایل مجاز است. ? به معنی هیچ یا فقط یک نویسه و * به معنی هیچ یا بیشتر است. اگر با Regular Expressionها یا عبارات با قاعده کار کرده باشید درک این نویسهها برای شما دشوار نیست. اگر در این رابطه اطلاعی ندارید میتوانید مقاله زیر را که پیشتر در کافهآموزش منتشر کردهام مطالعه بفرمایید.
Regular Expressions یا عبارات با قاعده چیست؟
برای مثال اگر بخواهیم همه فایلهایی که پسوند خاصی دارند را کپی کنیم باید ساختار زیر را به کار بگیریم:
robocopy d:src c:dest *.jpg
یا اگر بخواهیم هر فایلی که در نام آن حرف a وجود دارد با هر پسوندی کپی شود بصورت زیر عمل میکنیم:
*.*robocopy d:src c:dest *a
علاوه بر این دستور تعداد زیادی گزینه در اختیار ما قرار میدهد که چند مورد از آن را که برای من کاربردی بود بیان میکنم. بقیه گزینهها را میتوانید از مستندات خود مایکروسافت در اینجا بخوانید.
چیزی که من میخواستم این بود که تمامی فایلهایی که در پوشه مبدا بودند به پوشه مقصد منتقل شوند با این شرط که فقط فایلهایی منتقل شوند که 24 ساعت بیشتر از عمرشان نمیگذرد و پسوند bak دارند. در واقع فایلهای پشتیبانی که 24 ساعت گذشته تولید شده بودند را میخواستم. این کار به کمک گزینه زیر امکان پذیر شد:
robocopy d:src c:dest *.bak /maxage:1
شما هم میتوانید با مطالعه مستندات مایکروسافت فرمان مد نظر خود را ایجاد کنید. تا اینجای کار ما دستوری که فایلها را برای ما کپی میکند ایجاد کردهایم. حال چطور آن را خودکار کنیم که نیازی نباشد هربار ما دستی این دستور را وارد کنیم؟ برای این کار باید دست به دامن Task Scheduler ویندوز شویم و دستور خود را به آن بسپاریم تا برای ما در زمان معین اجرا کند.
نرم افزار FreeFileSync
دومین راهکاری که بنظرم کارایی مناسبی دارد و در واقع میتوان گفت همان روش قبلی ولی بصورت GUI است استفاده از نرمافزار Free File Sync است. همانطور که در تصویر زیر مشاهده میکنید پس از انتخاب مبدا و مقصد فایلهایی که در مقصد وجود ندارند را لیست میکند و میتوانید انتخاب کنید کدام فایلها به مقصد کپی شوند.

این نرمافزار براساس سه ملاک میتواند فایلهای مبدا و مقصد را با هم مقایسه کند؛ براساس زمان و حجم فایلها، براساس محتوای فایلها و براساس حجم به تنهایی. این نرمافزار هم امکان خودکار سازی فرآیند را به ما نمیدهد اما میتوان فایلهایی با پسوند ffs_batch ایجاد کرد و آن را از طریق Task Scheduler اجرا کرد، مانند همان چیزی که در مرحله قبل ذکر شد.
نرمافزار Syncovery
بهترین راهحلی که میتوان از آن استفاده کرد و من به آن رسیدم استفاده از نرمافزار Syncovery است. چرا که این نرمافزار علاوه بر قابلیتهای روشهای قبلی به وفور قابلیت در آن دیده میشود که مهمترین آن امکان تعریف Job برای اجرا شدن در زمانبندیهای مشخص است. این نرمافزار آنقدر قابلیت دارد که میتوان یک کتاب چند صد صفحهای درباره آن نوشت. امکان تعیین الگو برای نام فایل، تعیین محدودیت برای تعداد فایلهایی که باید کپی شوند، تعیین الگو برای نام پوشه و خیل قابلیتهای دیگر.

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