یکی از وظایف روتین ادمین های شبکه و دیتابیس ، تهیه ، کپی و ذخیره و نگهداری فایل های متعدد از جمله فایل های Backup می باشد.بدون شک هدف نهایی بستر شبکه ، تولید دیتا است و در نتیجه مهمترین و پایه ای ترین وظیفه ادمین ها نیز ، نگهداری از داده ها در قالب های مختلف است.
سناریو: فرض کنید ادمین یا DBA یک بانک اطلاعاتی Microsoft SQL Server هستید. جهت تهیه Backup روتین از دیتا بیس ها ، میتوان در SQL یک Management Plan نوشت که بصورت Schedule شده از دیتابیس ها Backup بگیرد.Best Practice تهیه Backup اینست که در چندین نسخه تهیه گردد. توصیه میشود نسخه اول بر روی همان سرور و سایر نسخ بر روی استوریج دیگر که بصورت فیزیکی و حتی مکانی مستقل است ، انجام گردد.فرض کنید در سرور SQL شما ، سیستم عامل در درایو C ، فایل های دیتا در درایو D می باشند.و از درایو E نیز جهت Backup استفاده نموده ایم.Backup ها در درایوE تهیه میشوند و بعد از آن میخواهیم نسخه ثانویه Backup در فضایی دیگر بطور مثال درایو X ذخیره گردد. در ساده ترین حالت ممکن است درایو Xیک هارد اکسترنال متصل به سرور باشد.
می خواهیم شرایط بایستی بدین صورت باشد:
- فایل ها بایستی بصورت اتوماتیک و بدون دخالت ادمین کپی شوند.
- فایل ها بصورت زمان بندی شده هرساعت یکبار بصورت روزانه بر روی درایو X کپی شوند.
- علاوه بر فایل ها ، کلیه فولدرها و ساب فولدر ها نیز کپی شود.
- مهم اینکه: در صورت بروز خطا بصورت موقت ، به هر دلیل (بصورت مثال قطع بودن لحظه ای هارد اکسترنال یا مسیر شبکه ای مقصد) ، بعد از رفع خطا ، کپی بصورت خودکار ادامه یابد.
- مهم تر اینکه: در هر مرحله ، فایل های جدید کپی شود. با اینکه مسیر مبدا و مقصد در هر بار اجرای کپی ، یکی است ، فایل های قبلی کپی شده تشخیص داده شود .
بدیهی است دستور کپی عادی سیستم عامل ویندوز ، توان تامین شرایط فوق الذکر را نخواهد داشت. اینجاست که قدرت Command که همیشه مورد مباهات و علاقه ادمین هاست ، توان و تفاوت خود را نشان میدهد .
می توان جهت تامین موارد فوق الذکر ، از کامند xcopy استفاده کرد.سویچ های این فرمان مفید و سودمند برخلاف ظاهر ساده و قدیمی ، به قرار ذیل است:
جهت انجام این تسک ، مراحل زیر را طی می کنیم:
-ایجاد یک فایل Bat با محتوای کامند ذیل:
XCOPY E:\Backup X:\Backup /E /C /H /M
کاربرد تک تک سویچ های استفاده شده:
- E:\Backup :مسیر مبدا کپی فایل ها
- X:\Backup :مسیر مقصدکپی فایل ها
- E /: سویچ E بدین معناست که از کامند خواسته ایم کلیه فولدر ها ، ساب فولدر ها و حتی فولدر های خالی را نیز کپی کند.
- C/: سویچ C بدین معناست که در صورت بروز خطا ، عملیات کپی ادامه یا Continue شود.
- H/: سویچ H از کامند می خواهد کلیه فایل ها از جمله مخفی و سیستمی را نیز کپی کند.
- M/: سویچ M سویچ جالبی است. این سویچ از کامند می خواهد ((فقط)) فایل های با ویژگی Archive را کپی کندو علاوه بر این ، ویژگی Archive فایل ها را نیز حذف یا خاموش نماید.
نکته: با استفاده از سویچ M در کامند xcopy فایل های Backup ما که در بدو ساخت ، همانند سایر فایل ها ، دارای ویژگی Archive هستند، در مسیر مقصد کپی شده و سپس این صفت از آنها حذف می شود .در سری بعدی اجرای Backup دیگر فایل های کپی شده قبلی موجود در مسیر Source ، ویژگی Archive نخواهند داشت و در نتیجه توسط کامند ما کپی نخواهند شد.
- جهت زمان بندی عملیات فوق ، کافیست از طریق برنامه Task Schedule ویندوز ، این کامند را بصورت زمان بندی شده درآورید.
تذکر: استفاده از اين روش ، براي انواع فايل ها قابل استفاده است. روش هايی در محيط SQL Server مايکروسافت وجود دارد که با استفاده از آن میتوان کپی مراحل ثانویه Backup ها را نیز انجام داد . در این سناریوی این آموزش ،صرفاً به عنوان مثال به فایل های SQL اشاره شده است.
مطالعه کاربرد سایر سویچ های xcopy نیز خالی از لطف نیست: