ویرگول
ورودثبت نام
حامد خاکباز
حامد خاکبازCloud Engineer
حامد خاکباز
حامد خاکباز
خواندن ۲ دقیقه·۳ سال پیش

تهیه 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
شاید از این پست‌ها خوشتان بیاید