آموزش ایجاد اسکریپت بکاپگیری برای فایلهای مهم در لینوکس
در یک سیستم لینوکس، داشتن بکاپگیری منظم برای محافظت از دادهها، ایمن نگه داشتن آنها و آسانتر کردن بازیابی در صورت بروز مشکل بسیار مهم است. چه برای مدیریت فایلهای شخصی باشد یا اجرای یک برنامه راهاندازی توسعه یا مدیریت سرور، نقش یک برنامه بکاپگیری قوی بسیار حیاتی و پر اهمیت است .
یکی از سادهترین و انعطافپذیرترین راهها برای مدیریت بکاپگیری، نوشتن یک اسکریپت سفارشی است که به شما امکان میدهد دقیقا تصمیم بگیرید از چه چیزی، چه زمانی و کجا بکاپ گرفته شود تا در زمان صرفهجویی کرده و خطر از دست دادن دادهها را کاهش بدهد.
در این مطلب، یاد خواهید گرفت که چگونه یک شِل اسکریپت ساده ایجاد کنید که به طور خودکار از فایلهای مهم بکاپ بگیرد.
چرا از اسکریپت بکاپگیری استفاده کنیم؟
استفاده از اسکریپت بکاپگیری در لینوکس، کنترل و انعطافپذیری بیشتری را در مورد محافظت از دادههای مهم به مدیران سیستم میدهد.
به همین دلیل است که این یک حرکت هوشمندانه است:
- بکاپگیری خودکار: میتوانید اسکریپت را طوری برنامهریزی کنید که با استفاده از ابزارهایی مانند cron به تنهایی اجرا شود، بنابراین لازم نیست پیگیر بکاپگیری دستی باشید.
- کنترل کامل: شما تصمیم میگیرید که از چه چیزی، کجا و چند وقت یکبار بکاپ گرفته شود. میتواند کپیهای روزانه از etc/، اسنپشاتهای هفتگی از دایرکتوریهای home یا دایرکتوریهای انتخابی باشد.
ایجاد یک اسکریپت بکاپگیری برای فایلهای مهم
ترمینال خود را باز نموده و به دایرکتوری که میخواهید اسکریپت را در آن ذخیره کنید بروید( مثلا دایرکتوری home/ یا /usr/local/bin/ برای دسترسی در کل سیستم)
فایل اسکریپت را با استفاده از یک ویرایشگر متن مانند nano یا vim ایجاد کنید:
در زیر یک اسکریپت ساده وجود دارد که فایلها را در یک دایرکتوری مشخص بکاپگیری میکند.
توضیح اسکریپت:
- SOURCE_DIR: دایرکتوری حاوی فایلهایی که میخواهید از آنها بکاپ بگیرید، مانند home/user/Parsdev/
- BACKUP_DIR: دایرکتوری که بکاپها در آن ذخیره میشوند، مانند home/user/backups/
- TIMESTAMP: متغیری که تاریخ و زمان فعلی را برای شناسایی منحصر به فرد هر پوشه بکاپ ذخیره میکند.
- mkdir -p: پوشه بکاپ را با برچسب زمانی ایجاد میکند.
- cp -r: تمام فایلها و زیرشاخهها را از پوشه منبع به پوشه بکاپ کپی میکند.
- دستور echo تکمیل بکاپ را ثبت و یک برچسب زمانی به فایل لاگ اضافه میکند.
- دستور find بکاپهای قدیمیتر از 30 روز را حذف و از پر شدن پوشه بکاپ شما با فایلهای قدیمی جلوگیری میکند.
اسکریپت را ذخیره کرده و ویرایشگر متن را ببندید.
حالا که اسکریپت نوشته شده است، باید آن را قابل اجرا کنید.
اکنون میتوانید اسکریپت را با اجرای دستور زیر به صورت دستی اجرا کنید:
اگر همه چیز به درستی تنظیم شده باشد، باید یک نسخه بکاپ از فایلهای شما در پوشه بکاپ مشخص شده ایجاد کند.
خرید VPS لینوکس با دسترسی کامل SSH و منابع اختصاصی، مناسب برای برنامهنویسان، توسعهدهندگان و مدیران سایت در پارسدو فراهم است.
زمانبندی اسکریپت بکاپگیری با استفاده از Cron
برای خودکارسازی فرآیند بکاپ، میتوانید اسکریپت را طوری زمانبندی کنید که در فواصل زمانی مشخص با استفاده از cron، اجرا شود.
فایل پیکربندی cron را با تایپ کردن دستور زیر باز کنید:
یک cron job اضافه کنید تا اسکریپت در زمان مشخص اجرا شود. برای مثال، برای اجرای اسکریپت بکاپ هر روز ساعت ۲ بامداد، خط زیر را به فایل cron اضافه کنید:
اسکریپت اکنون به طور خودکار در زمان مشخص شده اجرا میشود.
برای تایید بکاپگیری، میتوانید دایرکتوری بکاپ را بررسی کنید تا مطمئن شوید که بکاپها طبق انتظار ایجاد میشوند، یا میتوانید لاگهای cron را هم بررسی کنید تا تایید شود که اسکریپت بکاپ در زمان برنامهریزی شده اجرا میشود.
افزودن فشردهسازی با tar و gzip
به جای کپی کردن مستقیم فایلها، میتوانید کل بکاپ را در یک فایل .tar.gz فشرده کنید، که باعث صرفهجویی در فضا و مرتب نگه داشتن همه چیز میشود.
اسکریپت اصلاح شده با فشردهسازی:
ارسال بکاپ به یک سرور راه ریموت با استفاده از scp
اگر میخواهید بکاپهای خود را روی یک سرور ریموت مانند یک VPS یا NAS ذخیره کنید، میتوانید آرشیو را با استفاده از دستور scp آپلود نمائید.
به انتهای اسکریپت موارد زیر را اضافه کنید:
احراز هویت کلید SSH را بین دستگاه لوکال خود و سرور ریموت تنظیم کنید تا از وارد کردن دستی رمزهای عبور جلوگیری شود.
جمعبندی
ایجاد یک اسکریپت بکاپگیری در لینوکس روشی ساده و کاربردی برای محافظت از دادههای شما در برابر از دست دادن تصادفی است. با زمانبندی اسکریپت با cron، میتوانید فرآیند بکاپگیری را خودکار کنید تا فایلهای مهم شما به طور منظم و بدون نیاز به انجام دستی آن ذخیره شوند.