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

در ادامه‌ی مطلب به شما نشان می‌دهیم که چطور به سرعت می‌توانید از طریق لینوکس از هارد درایو خود بکاپ بگیرید.

اولین روش Rsync نام دارد و دومین روش DD است که از طریق SSH انجام می‌شود.

بکاپ‌گیری از راه دور با Rsync

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

چگونه در لینوکس از هارد به صورت از راه دور (Remote) بکاپ بگیریم؟

اگر نمی‌خواهید از کل محتوای هارد بکاپ بگیرید، با Rsync می‌توانید از اطلاعات حیاتی آن بکاپ تهیه کنید. این ابزار ویژگی‌های فایل مثل دسترسی‌های آن را حفظ می‌کند و اگر با استفاده از چیزی مثل Tar Gzip بخواهید فایل‌های خراب را کپی کنید ممکن است با خطا مواجه شوید.

روش نصب Rsync

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

اوبونتو

sudo apt install rsync

دبیان

sudo apt-get install rsync

آرچ لینوکس

sudo pacman -S rsync

فدورا

sudo dnf install rsync

اوپن‌سوزه

sudo zypper install rsync

سایز توزیع‌ها

پیدا کردن ابزار Rsync حتی برای توزیع‌های نامتعارف لینوکسی هم راحت است. بسیاری از سیستم‌ها آن را به صورت پیش‌فرض دارند. برای نصب کردن این برنامه کافی است ابزار مدیریت بسته‌های خود را باز، rsync را جستجو کرده و آن را نصب کنید. البته بهتر است اول آدرس IP از راه دور کامپیوتر خود را پیدا کنید (اگر قبلاً با استفاده از دستور Ping آن را نیافته بودید).

نکته: برای بکاپ گرفتن از فایل‌های سیستمی باید دسترسی روت داشته باشید.

دستورالعمل بکاپ از راه دور از طریق LAN

اگر دستگاهتان به اینترنت دسترسی دارد، اما از طریق LAN هم می‌توانید به آن دسترسی داشته باشید، با پینگ کردن نام میزبان می‌توانید آدرس را پیدا کنید. به خاطر داشته باشید که اگر از LAN استفاده می‌کنید، کافی است فقط همان IP را داشته باشید. البته تنها زمانی باید از این روش استفاده نمایید که نام میزبان کار نکند. برای مثال:

ping ubuntu-server -c1

و نتیجه اینگونه خواهد بود:

OUTPUT: PING ubuntu-server (192.168.1.126) 56(84) bytes of data.

حالا می‌دانیم که آدرس IP سرور ما در حالت LAN برابر است با: 192.168.1.126

دستورالعمل بکاپ‌گیری از طریق اینترنت

مثل حالت LAN، در این جا هم برای پیدا کردن IP از دستور ping استفاده کنید. مثلا:

ping google.com -c1

و نتیجه‌ی دستور:

OUTPUT: PING google.com (172.217.11.142) 56(84) bytes of data.

بعد از این که آدرس IP فعلی خود را پیدا کردید، به ترمینال رفته و دستور زیر را روی همان دستگاهی که اطلاعات بکاپ وجود دارد وارد کنید:

rsync -avP --numeric-ids --exclude='/dev' --exclude='/proc' --exclude='/sys' root@remote.ip.address:/remote/file/location /local/backup/destination/

انجام این فرآیند از طریق اینترنت یا LAN بسته به چیزهای مختلف ممکن است مدت زیادی طول بکشد. مطمئن شوید که هر دو کامپیوتر روشن باشند تا انتقال کامل شود.

بکاپ‌گیری از راه دور از هارددیسک با DD از طریق SSH

اگر می‌خواهید خیلی سریع از طریق اینترنت از هارد یک سرور یا یک کامپیوتر دور از دسترس بکاپ بگیرید، DD بهترین گزینه است. این برنامه با استفاده از پایپ‌های خط فرمان دستور DD یک دستگاه را به دستگاه بعدی مرتبط می‌کند. از ابزار مذکور می‌توان برای ارسال ایمیج درایو یک کامپیوتر محلی به یک میزبان خارج از دسترس یا بالعکس استفاده کرد.

برای انجام این کار مطمئن شوید که کامپیوتر خارج از دسترس قادر به پذیرش ارتباطات SSH در پورت ۲۲ (یا هر پورت دلخواه دیگری) باشد. همچنین مطمئن شوید که هر دو کامپیوتر به SSH مجهز باشند.

نکته: در مثال ما هارد درایو /dev/sda و پارتیشن /dev/sda1 است. این موارد ممکن است در دستگاه شما متفاوت باشد. با استفاده از lsblk می‌توانید ببینید که مشخصه‌ی درایو مورد نظر شما چیست.

بکاپ‌گیری از کل هارد دستگاه خارج از دسترس به دستگاه محلی:

ssh user@remote "dd if=/dev/sda1 | gzip -1 -" | dd of=image.gz

بکاپ‌گیری از یک پارتیشن دستگاه خارج از دسترس به دستگاه محلی:

ssh user@remote "dd if=/dev/sda1 | gzip -1 -" | dd of=image.gz

بکاپ‌گیری از کل هارد دستگاه محلی به دستگاه خارج از دسترس:

dd if=/dev/sda | gzip -1 - | ssh user@local dd of=image.gz

بکاپ‌گیری از یک پارتیشن دستگاه محلی به دستگاه خارج از دسترس:

dd if=/dev/sda1 | gzip -1 - | ssh user@local dd of=image.gz

چگونه در لینوکس از هارد به صورت از راه دور (Remote) بکاپ بگیریم؟

بعد از این که کار ساختن ایمیج بکاپ تمام شد، می‌توانید آن را بازیابی کنید. برای انجام این کار روش‌های مختلف وجود دارد ولی برای راحتی بیشتر ما ابزار Gnome Disk Utility را توصیه می‌کنیم. برای برگرداندن بکاپ به یک هارد درایو جدید، دستگاه را از سمت چپ اپلیکیشن پیدا کرده و روی آن کلیک کنید. سپس از بالای راست صفحه روی منو کلیک نموده و دکمه‌ی Restore Disk Image را انتخاب کنید.

نکته: برگرداندن بکاپ‌ها کمی زمان می‌برد، پس صبور باشید.

در انتها پنجره‌ای باز شده و از شما می‌خواهد که ایمیج دیسک را به برنامه بدهید. برای این کار all files و بعد image.gz را انتخاب کنید.

از ابزار Gnome Disk Utility برای برگرداندن ایمیج پارتیشن‌های DD هم می‌توان استفاده کرد. کافی است از سمت چپ روی هارددرایو مورد نظر خود کلیک کنید، بعد آیکن چرخ‌دنده را انتخاب و در آخر روی دکمه‌ی Restore Partition image کلیک نمایید.