بکاپ اوبونتو (نحوه Backup گیری در Ubuntu) بکاپ گیری از سرور لینوکس



بکاپ اوبونتو

لینوکس به عنوان یک سیستم عامل که بسیار قابل تنظیم است و به شدت به تعاملات CLI متکی است، مستعد خرابی های سیستمی است که ناشی از دستورات یا تنظیمات نادرست سیستم است. بنابراین اگر از لینوکس در رایانه اصلی یا خرید vps استفاده می کنید، ممکن است اغلب با مشکلاتی مواجه شوید.

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

 

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

 

 

بکاپ گیری از لینوکس با Timeshift 

برنامه TimeShift لینوکس چیست؟ مانند Windows System Restore و macOS Time Machine که در ویندوز و مک استفاده میشود، لینوکس نیز ابزاری به نام «TimeShift» دارد. ما به راحتی می توانیم این ابزار بازیابی یا پشتیبان گیری سیستم لینوکس را روی اوبونتو، لینوکس مینت و دبیان نصب کنیم. وظیفه کلیدی این ابزار ایجاد snapshot فوری از سیستم فایل لینوکس است که در هنگام بازیابی حالت قبلی را بازیابی می کند.

 

TimeShift از Rsync برای کار در پس‌زمینه برای مراقبت از فایل‌های سیستم استفاده می‌کند و فایل‌های شخصی کاربران را در دایرکتوری‌های home دست نخورده می‌گذارد، اما از فایل‌های پیکربندی آنها نیز نسخه پشتیبان تهیه می‌کند. بازیابی وضعیت قبلی سیستم هیچ documents را بازنویسی نمی کند، بلکه تنظیمات کاربر را نیز بازیابی می کند. همچنین، از حالت اسنپ شات BTRFS پشتیبانی می کند.

 

آموزش نصب TimeShift در Ubuntu 22.04 | 20.04 LTS Linux

دستور به روز رسانی سیستم را اجرا کنید

sudo apt update && sudo apt upgrade

ما برای نصب TimeShift نیازی به افزودن مخزن اضافی در vps ایران نداریم زیرا بسته‌های آن را قبلا در مخزن سیستم پیش‌فرض اوبونتو داریم. به سادگی از مدیر بسته APT برای نصب TimeShift استفاده کنید.

sudo apt install timeshift

 

آموزش نصب TimeShift در Fedora, CentOS, و RHEL

sudo dnf install timeshift

 

اگر از لینوکس با محیط دسکتاپ گرافیکی استفاده میکنین، از لیست app های نصب شده، timeshift رو جستجو کنین و اجرا کنید. بعد از اجرای این برنامه از شما می خواهد که نوع اسنپ شات را بین Rsync و BTRS انتخاب کنید. توجه: برای استفاده از نوع اسنپ شات BTRFS سیستم فایل لینوکس شما باید در BTRFS فرمت شده باشد. در غیر این صورت به سراغ rsync بروید. در متن زیر، توضیحاتی درباره انواع اسنپ شات قرار دادیم.

اسنپ شات RSYNC
  • اسنپ شات با ایجاد کپی از فایل های سیستم با استفاده از rsync و پیوند hard-linking بدون تغییر از اسنپ شات قبلی ایجاد می شوند.
  • همه فایل ها با ایجاد اولین اسنپ شات کپی می شوند. اسنپ شات بعدی افزایشی هستند. فایل‌های بدون تغییر در صورت موجود بودن با اسنپ شات قبلی hard-linking خواهند داشت.
  • اسنپ شات را می توان در هر دیسک فرمت شده با یک سیستم فایل لینوکس ذخیره کرد. ذخیره اسنپ شات در دیسک‌های غیر سیستمی یا خارجی به سیستم اجازه می‌دهد حتی اگر دیسک سیستم آسیب دیده یا دوباره قالب‌بندی شود، بازیابی شود.
  • فایل ها و دایرکتوری ها را می توان برای صرفه جویی در فضای دیسک حذف کرد.

 

اسنپ شات BTRFS
  • اسنپ شات با استفاده از ویژگی های داخلی سیستم فایل BTRFS ایجاد می شوند.
  • اسنپ شات ایجاد و بازیابی فوری انجام میشود. ایجاد Snapshot یک تبادل اتمی در سطح سیستم فایل است.
  • اسنپ شات با جایگزینی حجم های فرعی سیستم بازیابی می شوند. از آنجایی که فایل ها هرگز کپی، حذف یا بازنویسی نمی شوند، خطر از دست رفتن داده ها وجود ندارد. سیستم موجود پس از بازیابی به عنوان یک اسنپ شات جدید حفظ می شود.
  • اسنپ شات کپی های بایت به بایت کامل سیستم هستند. هیچ چیز مستثنی نیست.
  • اسنپ شات روی همان دیسکی که از آن ایجاد شده اند (دیسک سیستم) ذخیره می شوند. ذخیره سازی روی دیسک های دیگر پشتیبانی نمی شود. اگر دیسک سیستم از کار بیفتد، اسنپ شات های ذخیره شده روی آن به همراه سیستم از بین می روند.
  • اندازه اسنپ شات BTRFS در ابتدا صفر است. همانطور که فایل های سیستم به تدریج با گذشت زمان تغییر می کنند، داده ها در بلوک های داده جدید که فضای دیسک را اشغال می کنند (کپی در نوشتن) نوشته می شود. فایل‌های موجود در اسنپ شات همچنان به فضای دیسک اشاره می‌کنند (کپی در نوشتن). Ales در اسنپ شات همچنان به بلوک های داده اصلی اشاره می کند.
  • سیستم عامل باید بر روی یک پارتیشن BTRFS با Ubuntu-type subvolume layout از نوع Ubuntu (subvolumes @ و @home) نصب شود. layouts دیگر پشتیبانی نمی شوند.

 

دستورات CLI timeshift برای لینوکس سرور

علاوه بر نسخه دسکتاپ لینوکس، میتونین از دستورات cli timeshift در نسخه های سروری این سیستم عامل در سرور مجازی امارات یا سرور مجازی آمریکا یا هر موقعیت دیگه ای اجرا کنید.

مشاهده لیست اسنپ شات ها

sudo timeshift --list

ساخت اسنپ شات (در صورتیکه زمانبندی scheduled ایجاد کرده باشید)

sudo timeshift --check

ساخت اسنپ شات (در صورتیکه زمانبندی scheduled ایجاد نکرده باشید)

sudo timeshift --create

ریستور اسنپ شات (با انتخاب اینکه کدام فایل اسنپ شات را میخواهید انتخاب کنید)

sudo timeshift --restore

ریستور اسنپ شات خاص

sudo timeshift --restore --snapshot '[snapshot]'

حذف اسنپ شات

sudo timeshift --delete --snapshot '[snapshot]'

 

--tags D مخفف Daily Backup - بکاپ روزانه است

--tags W مخفف Weekly Backup - بکاپ هفتگی است

--tags M مخفف Monthly Backup - بکاپ ماهانهاست

--tags O مخفف On-demand Backup - بکاپ لحظه ای است

 

(ایجاد یک  اسنپ شات ممکن است چند دقیقه طول بکشد، بستگی به اندازه فایل ها و منابع سخت افزاری شما دارد)

 

ساخت ISO با اوبونتو Ubuntu 22

برنامه های مختلف third-party وجود دارد که به شما امکان می دهد ISO یی از نصب فعلی در اوبونتو 22.04 ایجاد کنید. در این بخش 3 برنامه رو به شما آموزش میدیم.

 

 

نصب Brasero

Brasero یک برنامه disk burning اوپن سورس برای سیستم عامل های مبتنی بر لینوکس است. این برنامه یک رابط گرافیکی ساده و تمیز دارد که به شما امکان می دهد یک فایل ISO از سیستم عامل فعلی ایجاد کنید. برای نصب Brasero در Ubuntu 22، ترمینال را باز کرده و سپس دستور زیر را اجرا کنید.

sudo apt install brasero

پس از اتمام نصب، Brasero را با استفاده از دستور “Brasero” در ترمینال اجرا کنید. همچنین می توانید با جستجوی نام Brasero، برنامه را از نوار جستجوی برنامه Ubuntu اجرا کنید.

 

Mkisofs

یک ابزار دیگر به نام MKISOFS وجود دارد که به شما امکان می دهد ISOیی از نصب فعلی اوبونتو 22.04 ایجاد کنید. این ابزار در ترمینال اوبونتو اجرا می شود و دستورات اصلی در ترمینال در زیر آورده شده است :

mkisofs -o <file_name.iso> <path_of_directory>

دستور بالا فایل “backup.iso” را در پوشه Home ایجاد می کند که حاوی محتویات تمام پوشه های موجود در پوشه Backup است.

 

 

ابزار rsync

یکی از ساده‌ترین و مطمئن‌ترین ابزارهای پشتیبان‌گیری که می‌توانید برای پشتیبان‌گیری از سرور خود استفاده کنید، ابزار rsync هست. Rsync در اکثر توزیع‌های لینوکس در مخازن نصب شده یا در دسترس است. تقریبا هر کاربر سرور روزانه از rsync برای انتقال فایل ها در سرور یا بین ایستگاه های کاری راه دور استفاده می کند.

ابزار rsync که مخفف همگام سازی (sync) از راه دور است، rsync  یک ابزار همگام سازی فایل است که به طور هوشمند از داده ها به صورت محلی یا از راه دور نسخه پشتیبان تهیه می کند. ابزار rsync  فایل های منبع و مقصد را مقایسه می کند و فقط بخش هایی از داده ها را که تغییر کرده اند منتقل می کند، یعنی داده های بین سرور مبدا و مقصد را مقایسه میکند و فقط داده هایی که شامل تغییر شده اند رو به سرور مقصد منتقل میکند، rsync یک ابزار پشتیبان گیری افزایشی است که در زمان شما صرفه جویی می کند.

 

نصب rsync

(برای نصب، جملاتی که داخر [] هستن را کپی نکنید )

sudo apt-get install rsync [On Debian/Ubuntu & Mint] 
pacman -S rsync [On Arch Linux]
emerge sys-apps/rsync [On Gentoo]
sudo yum install rsync [On Fedora/CentOS/RHEL and Rocky Linux/AlmaLinux]
sudo zypper install rsync [On openSUSE]

 

دستورات Rsync

Local to Local: rsync [OPTION]... [SRC]... DEST
Local to Remote: rsync [OPTION]... [SRC]... [USER@]HOST:DEST
Remote to Local: rsync [OPTION]... [USER@]HOST:SRC... [DEST]

OPTION - امکانات rsync.
SRC - دایرکتوری منبع.
DEST - دایرکتوری مقصد.
USER - نام کاربری ریموت.
HOST - نام میزبان ریموت یا آدرس IP.

 

مثال زیر نحوه ایجاد یک نسخه پشتیبان محلی از فایل های وب سایت را نشان می دهد (رنگ آپی آدرس فایل های وب سایت است و رنگ نارنجی هم آدرس و پوشه ای هست که بکاپ ها قرار هست در اونجا منتقل بشن) :

rsync -a /var/www/domain.com/public_html/ /var/www/domain.com/public_html_backup/

 

استفاده از Rsync برای انتقال اطلاعات به سرور دیگر

برای استفاده از rsync برای همگام‌سازی با یک سیستم از راه دور، مثل سرور مجازی آلمان، فقط به دسترسی SSH بین دستگاه‌های محلی و راه دور خود و همچنین rsync نصب شده در هر دو سیستم نیاز دارید. هنگامی که دسترسی SSH را بین دو دستگاه تیید کردید، می‌توانید با استفاده از دستور زیر، پوشه dir1 را با یک دستگاه راه دور مثل سرور مجازی آلمان همگام‌سازی کنید. لطفا در این مورد توجه داشته باشید که می‌خواهید دایرکتوری واقعی را انتقال دهید، بنابراین اسلش انتهایی را حذف خواهید کرد :

rsync -a ~/dir1 username@remote_host:destination_directory

این فرآیند از عملیات push نامیده می شود زیرا یک دایرکتوری را از سیستم محلی به یک سیستم راه دور ” push ” می کند. عمل مخالف pull است و برای همگام سازی دایرکتوری راه دور با سیستم محلی استفاده می شود. اگر دایرکتوری dir1 به جای سیستم محلی شما در سیستم راه دور مانند سرور مجازی آلمان قرار داشت، دستور انتقال به صورت زیر خواهد بود، دستور زیر برعکس دستور بالا هست، و بصورت برعکس دستور بالا عمل میکند و از سیستم مقصد (مثلا سرور مجازی آلمان) اطلاعات رو به سیستم لوکال شما وارد میکند:

rsync -a username@remote_host:/home/username/dir1 place_to_sync_on_local_machine

Rsync گزینه‌های زیادی را برای تغییر رفتار پیشفرض ابزار فراهم می‌کند، مانند flag options ها، اگر در حال انتقال فایل‌هایی هستید که قبلا فشرده نشده‌اند، مانند فایل‌های متنی، می‌توانید با افزودن فشرده‌سازی با گزینه -z، انتقال شبکه را کاهش دهید :

rsync -az source destination

 

برای اینکه دو دایرکتوری واقعا با هم هماهنگ (sync) باشند، لازم است فایل‌ها را در صورت حذف از منبع، از دایرکتوری مقصد حذف کنید. به طور پیش فرض، rsync چیزی را از فهرست مقصد حذف نمی کند. می توانید این رفتار را با گزینه –delete تغییر دهید. قبل از استفاده از این گزینه، می توانید از -n، گزینه –dry-run، برای انجام آزمایشی برای جلوگیری از از دست دادن اطلاعات ناخواسته استفاده کنید :

rsync -an --delete source destination

 

برای نشان دادن پیشرفت در حین انتقال داده ها از یک ماشین به ماشین دیگر، می توانیم از گزینه “–progress” استفاده کنیم. فایل ها و زمان باقی مانده برای تکمیل انتقال را نمایش می دهد.

rsync -avzhe ssh --progress /root/rpmpkgs root@192.168.0.141:/root/rpmpkgs

 

در نهایت، گزینه –backup Rsync را می توان برای ذخیره نسخه پشتیبان از فایل های مهم استفاده کرد. این در ارتباط با گزینه –backup-dir استفاده می شود که دایرکتوری را که فایل های پشتیبان باید در آن ذخیره شوند را مشخص می کند:

rsync -a --delete --backup --backup-dir=/path/to/backups /path/to/source destination