1. مستندات
  2. سرور مجازی
  3. لینوکس
  4. بدون کنترل‌پنل
  5. بکاپ‌گیری و فشرده‌سازی فایل‌ها در سرور لینوکسی

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

Calendar

انتشار:

1404/08/09
Update Calendar

به روز رسانی:

1404/08/09

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

مرحله اول: شروع کار بعد از ورود از طریق SSH

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

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

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

ls -lh
ls -lh

این دستور فهرستی از فایل‌ها و پوشه‌ها را به همراه حجم و سطح دسترسی هرکدام نمایش می‌دهد.

اگر مثلاً قصد دارید از وب‌سایت‌های خود بکاپ بگیرید، معمولاً مسیر آن‌ها /var/www است. می‌توانید با دستور زیر وارد آن شوید:

cd var/www

در این مرحله مطمئن شوید فضای کافی در دیسک برای ذخیره‌ی بکاپ وجود دارد. برای بررسی فضای دیسک می‌توانید از دستور زیر استفاده کنید:

df -h

نمای بررسی فایل‌ها و فضای دیسک

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

ابزار tar یکی از پرکاربردترین ابزارها در لینوکس برای ایجاد فایل‌های بکاپ فشرده است. این ابزار می‌تواند یک دایرکتوری کامل را در قالب یک فایل آرشیو ذخیره کند.

برای نمونه، اگر می‌خواهید از مسیر /var/www بکاپ بگیرید، دستور زیر را وارد کنید:

sudo tar -czvf backup.tar.gz var/www

در این دستور:

  • c برای ایجاد فایل جدید است.
  • z فایل را با فرمت gzip فشرده می‌کند.
  • v باعث نمایش جزئیات عملیات در حین اجرا می‌شود.
  • f نام فایل خروجی را مشخص می‌کند (در اینجا: backup.tar.gz).

بعد از اجرای دستور، بسته به حجم فایل‌ها، ممکن است چند دقیقه زمان ببرد تا عملیات تکمیل شود. در پایان، فایل backup.tar.gz در مسیر فعلی ذخیره خواهد شد.

نمای اجرای دستور tar

مرحله چهارم: بکاپ‌گیری از چند فایل مشخص

گاهی فقط نیاز دارید از چند فایل خاص بکاپ بگیرید، نه از کل پوشه‌ها. در این حالت هم می‌توانید از tar استفاده کنید.

مثلاً برای بکاپ گرفتن از لاگ‌های مهم سیستم ذاز این دستور استفاده کنید:

sudo tar -czvf backup-logs.tar.gz /var/log/dpkg.log /var/log/apt/history.log

با این دستور، فایل‌های انتخاب‌شده در یک فایل فشرده ذخیره می‌شوند. در صورت نیاز می‌توانید مسیر فایل‌ها را تغییر دهید یا چند مسیر مختلف اضافه کنید.

نمای بکاپ از فایل‌های خاص

مرحله پنجم: بررسی صحت فایل بکاپ

بعد از اتمام عملیات بکاپ، بهتر است مطمئن شوید فایل شما سالم و کامل ایجاد شده است. برای این کار از دستور زیر استفاده کنید:

tar -tvf backup.tar.gz

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

نمای خروجی بررسی بکاپ

مرحله ششم: بازیابی فایل‌های بکاپ (Restore)

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

sudo tar -xzvf backup.tar.gz -C /destination/path

به‌جای /destination/path مسیر مورد نظر خود را وارد کنید. به‌عنوان مثال، اگر می‌خواهید محتوا در مسیر /var/www بازگردد، باید همین مسیر را جایگزین کنید.

نمای بازیابی فایل‌ها از بکاپ

مرحله هفتم: فشرده‌سازی فایل‌های تکی با gzip یا bzip2

اگر فقط یک یا چند فایل دارید و نیازی به آرشیو کردن پوشه‌ها نیست، ابزارهای ساده‌تری مثل gzip یا bzip2 می‌توانند کاربردی باشند.

برای فشرده‌سازی یک فایل با gzip، دستور زیر را اجرا کنید:

gzip myfile.log

با اجرای این دستور، فایل اصلی حذف شده و نسخه فشرده‌شده آن با پسوند .gz در همان مسیر ذخیره می‌شود. برای بازگرداندن فایل به حالت اولیه، از دستور زیر استفاده کنید:

gunzip myfile.log.gz

اگر به دنبال فشرده‌سازی با راندمان بالاتر (اما سرعت کمتر) هستید، ابزار bzip2 گزینه بهتری است:

bzip2 myfile.log

نمای خروجی gzip و bzip2

مرحله هشتم: زمان‌بندی بکاپ خودکار با cron

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

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

sudo crontab -e

سپس خط زیر را در انتهای فایل اضافه کنید تا هر روز ساعت ۳ صبح بکاپ جدیدی از مسیر /var/www گرفته شود و نام فایل بکاپ شامل تاریخ روز باشد:

0 3 * * * tar -czf /backup/auto-$(date +\%F).tar.gz /var/www

با این روش، فایل‌های بکاپ شما به‌صورت خودکار و با تاریخ روز ذخیره می‌شوند.

نمای تنظیم cron

نکته تکمیلی: نصب ابزارهای لازم در توزیع‌های مختلف

در بیشتر توزیع‌های لینوکسی ابزارهای tar، gzip و bzip2 به‌صورت پیش‌فرض نصب هستند. اگر این ابزارها روی سرور شما نصب نبودند، می‌توانید با استفاده از دستورات زیر آن‌ها را نصب کنید:

در Ubuntu و Debian:

sudo apt install tar gzip bzip2 -y

در CentOS، AlmaLinux یا Rocky Linux:

sudo dnf install tar gzip bzip2 -y

نمای نصب ابزارها در ترمینال

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

آیا توانستیم چالش شما را حل کنیم؟