حامد خاکباز
حامد خاکباز
خواندن ۲ دقیقه·۲ سال پیش

تهیه Incremental Backup به کمک Bash Script در لینوکس

همواره یکی از مهم­ترین چالش ­ها در بحث Data Management ، فرآیند Backup یا پشتیبان­گیری از داده ­ها است. از این رو باید به دنبال تکنیک­ های سریع­تر و به­ صرفه­ تری (از حیث مصرف منابعی مانند دیسک و شبکه) در فرآیند Backup گیری بود. یکی از این تکنیک­ ها، Backup گیری به روش Incremental هست که باعث می­شود هر بار تنها از تغییرات Backup تهیه شود. به عبارت دیگر به­ وسیله Incremental Backup در هر نوبت Backup گیری، بر خلاف نوبت اول از تمامی فایل ها و داده ها مجدد Backup تهیه نمی شود بلکه تنها از فایل های جدید و یا داده های تغییر یافته نسخه ی جدید Backup تهیه می­شود. این کار در سیستم عامل های نسخه ی لینوکس می­تواند با اجرا شدن یک Bash Script انجام شود.

تهیه Incremental Backup به کمک Bash Script در لینوکس

همان­طور که پیش­تر اشاره شد در توزیع های مختلف سیستم عامل لینوکس به کمک Bash Script می­توان یک Directory را به عنوان مبدا برای Backup گیری و همچنین Directory دیگری را به عنوان مقصد برای ذخیره سازی فایل های Backup مشخص کرد تا هر بار که Script اجرا شد محتوای مبدا و مقصد با هم مقایسه شود و از هر داده جدیدی که در مبدا اضافه شده Backup گرفته شود. در این حالت Directory مبدا حاوی داده های موجود بر روی آن سیستم است و Directory مقصد در واقع یک فضای ذخیره سازی خارجی mount شده به آن سیستم است.

برای این کار ابتدا یک فایل script با پسوند .sh ایجاد می­کنیم، سپس مطابق تصویر زیر سطح دسترسی این فایل را طوری تعیین می­کنیم که فایل همیشه با سطح دسترسی کامل و به­وسیله قابلیت Special Permissions همیشه با سطح دسترسی کاربر root اجرا شود:

سپس فایل script را با vi باز کرده و مطابق تصویر زیر کد script را نوشته و ذخیره کنید: (مسیر src به معنای محل ذخیره داده اصلی و مسیر dst به معنای محل ذخیره ­سازی Backup است)

در Script فوق از دو متغیر src و dst استفاده شده (که می­تواند برای هر سناریو مسیری متفاوت داشته باشد) سپس محتوای موجود در src با dst بررسی می شود و بعد از هر بار اجرا شدن کد در صورتی که تغییرات جدیدی در src رخ داده باشد به صورت Incemental در dst کپی خواهد شد.


Cloud Engineer
شاید از این پست‌ها خوشتان بیاید