آموزش بازیابی بکاپ در لینوکس با دستورات کاربردی

زمان مطالعه: 7 دقیقه

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

فرقی نمی‌کند اطلاعات شما روی سرور مجازی ایران قرار داشته باشد یا سرور مجازی خارج؛ در هر دو حالت، آشنایی با روش صحیح بازیابی بکاپ در لینوکس ضروری است. در این مقاله، روش‌های کاربردی بازیابی بکاپ در لینوکس از آرشیوهایی مانند tar.gz، بکاپ‌های تهیه‌شده با rsync و همچنین Restore دیتابیس‌های MySQL، MariaDB و PostgreSQL را بررسی می‌کنیم.

بازیابی بکاپ در لینوکس
بازیابی بکاپ در لینوکس

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

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

بررسی نوع فایل بکاپ

ابتدا مشخص کنید بکاپ شما با چه روشی تهیه شده و چه فرمتی دارد. برای مثال، فایل‌هایی با پسوندهای زیر معمولاً آرشیوهای فشرده هستند:

فرمت
کاربرد
.tar
آرشیو چند فایل یا پوشه بدون فشرده‌سازی
.tar.gz یا .tgz
آرشیو فشرده با Gzip
.tar.bz2
آرشیو فشرده با Bzip2
.tar.xz
آرشیو فشرده با XZ
.zip
آرشیو فشرده قابل استفاده در سیستم‌های مختلف
کپی معمولی فایل‌ها
بکاپی که به‌صورت مستقیم در پوشه‌ای دیگر ذخیره شده است

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

				
					file backup.tar.gz
				
			

خروجی این دستور معمولاً نوع آرشیو و روش فشرده‌سازی آن را مشخص می‌کند.

بررسی فضای ذخیره‌سازی و دسترسی‌ها

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

برای بررسی فضای دیسک، از دستور زیر استفاده کنید:

				
					df -h
				
			

گزینه h- حجم‌ها را با واحدهای خوانا مانند GB و MB نمایش می‌دهد.

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

تهیه بکاپ از اطلاعات فعلی

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

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

آموزش بازیابی بکاپ در لینوکس

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

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

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

فرض کنید فایل بکاپ شما backup.tar نام دارد. برای استخراج آن در پوشه فعلی، دستور زیر را اجرا کنید:

				
					tar -xvf backup.tar
				
			

در این دستور:

  • x-برای استخراج فایل‌ها استفاده می‌شود.
  • v-نام فایل‌ها را هنگام استخراج نمایش می‌دهد.
  • f-مشخص می‌کند که آرشیو موردنظر کدام فایل است.

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

Restore بکاپ در یک مسیر مشخص

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

برای مثال:

				
					tar -xvf backup.tar -C /var/www/example
				
			

در این مثال، محتوای آرشیو در مسیر var/www/example/ استخراج می‌شود. پیش از اجرای دستور، مطمئن شوید که مسیر مقصد وجود دارد و دسترسی لازم برای نوشتن در آن را دارید.

نکته: اگر آرشیو شامل یک پوشه اصلی باشد، ممکن است پس از استخراج، فایل‌ها در مسیری مانند var/www/example/backup-folder/ قرار بگیرند، نه مستقیماً در ریشه مقصد. بهتر است ساختار آرشیو را پیش از Restore بررسی کنید.

بازیابی فایل‌های فشرده با فرمت tar.gz

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

برای استخراج فایل backup.tar.gz در مسیر فعلی، دستور زیر را اجرا کنید:

				
					tar -xzvf backup.tar.gz
				
			

گزینه -z به tar اعلام می‌کند که آرشیو با Gzip فشرده شده است. سایر گزینه‌ها همان کاربرد قبلی را دارند.

اگر بخواهید فایل‌ها را مستقیماً در مسیر مشخصی بازیابی کنید، می‌توانید دستور را به شکل زیر بنویسید:

				
					tar -xzvf backup.tar.gz -C /var/www/example
				
			
بازیابی فایل‌های فشرده با فرمت tar.gz
بازیابی فایل‌های فشرده با فرمت tar.gz

بازیابی فایل‌های فشرده با فرمت tar.bz2 و tar.xz

علاوه بر Gzip، ابزار tar از روش‌های فشرده‌سازی دیگری مانند Bzip2 و XZ نیز پشتیبانی می‌کند. تفاوت اصلی در گزینه‌ای است که برای مشخص کردن نوع فشرده‌سازی استفاده می‌شود.

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

				
					tar -xjvf backup.tar.bz2
				
			

در اینجا، گزینه -j برای پردازش فشرده‌سازی Bzip2 به کار می‌رود.

برای استخراج فایل tar.xz نیز دستور زیر را اجرا کنید:

				
					tar -xJvf backup.tar.xz
				
			

گزینه -J مشخص می‌کند که فایل با روش XZ فشرده شده است.

در هر دو حالت، اگر بخواهید فایل‌ها در مسیر خاصی بازیابی شوند، می‌توانید -C را به دستور اضافه کنید:

				
					tar -xJvf backup.tar.xz -C /var/www/example
				
			

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

بازیابی بکاپ در لینوکس با دستور rsync

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

فرض کنید بکاپ در مسیر /backup/website/ قرار دارد و می‌خواهید آن را به مسیر /var/www/example/ منتقل کنید. دستور زیر فایل‌ها را کپی می‌کند:

				
					rsync -av /backup/website/ /var/www/example/
				
			

در این دستور:

  • a-حالت آرشیوی را فعال می‌کند و ویژگی‌هایی مانند ساختار پوشه‌ها و زمان فایل‌ها را تا حد امکان حفظ می‌کند.
  • v-اطلاعات فایل‌های منتقل‌شده را نمایش می‌دهد.
  • /backup/website/ مسیر منبع بکاپ است.
  • /var/www/example/ مسیر مقصد است.

توجه به اسلش پایانی مسیر: در rsync، وجود یا نبودن / در انتهای مسیر منبع اهمیت دارد. در مثال بالا، محتویات پوشه website به مقصد کپی می‌شوند. اگر اسلش پایانی حذف شود، ممکن است خود پوشه website داخل مقصد قرار بگیرد.

استفاده از rsync برای بازیابی از سرور دیگر

اگر بکاپ روی سرور دیگری قرار دارد، می‌توانید با استفاده از SSH فایل‌ها را به سرور مقصد منتقل کنید. برای مثال:

فرض کنید بکاپ در مسیر /backup/website/ قرار دارد و می‌خواهید آن را به مسیر /var/www/example/ منتقل کنید. دستور زیر فایل‌ها را کپی می‌کند:

				
					rsync -av user@192.0.2.10:/backup/website/ /var/www/example/
				
			

در این مثال، فایل‌ها از مسیر /backup/website/ روی سرور مبدأ به مسیر مقصد در سرور فعلی منتقل می‌شوند.

هشدار: پیش از اجرای rsync روی اطلاعات مهم، مسیر مبدأ و مقصد را با دقت بررسی کنید. جابه‌جا نوشتن این دو مسیر ممکن است باعث انتقال اطلاعات در جهت اشتباه شود.

بازیابی بکاپ در لینوکس با دستور cp

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

برای کپی یک فایل بکاپ به مسیر مقصد، از دستور زیر استفاده کنید:

				
					cp /backup/config.php /var/www/example/
				
			

در این مثال، فایل config.php از پوشه بکاپ به مسیر مقصد کپی می‌شود.

برای کپی یک پوشه به‌همراه محتویات آن، باید از گزینه -r استفاده کنید:

				
					cp -r /backup/website/. /var/www/example/
				
			

در این دستور، گزینه r- امکان کپی بازگشتی پوشه‌ها و محتویات آن‌ها را فراهم می‌کند. استفاده از . در مسیر منبع باعث می‌شود محتویات پوشه website کپی شوند.

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

آموزش Restore دیتابیس در لینوکس

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

Restore دیتابیس MySQL و MariaDB

اگر بکاپ دیتابیس MySQL یا MariaDB به‌صورت فایل SQL تهیه شده باشد، می‌توان آن را با ابزار mysql بازیابی کرد.

فرض کنید:

  • example_db نام دیتابیس مقصد
  • dbuserنام کاربری دیتابیس
  • backup.sql فایل بکاپ

دستور عمومی Restore به شکل زیر است:

				
					mysql -u dbuser -p example_db < backup.sql
				
			

پس از اجرای دستور، رمز عبور کاربر دیتابیس از شما درخواست می‌شود.

در این دستور، فایل backup.sql شامل دستورهای SQL است که برای ایجاد جداول و وارد کردن اطلاعات اجرا می‌شوند.

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

اگر بکاپ با فرمت فشرده sql.gz ذخیره شده باشد، می‌توانید آن را با gunzip و ابزار mysql به‌صورت مستقیم وارد کنید:

				
					gunzip -c backup.sql.gz | mysql -u dbuser -p example_db
				
			

در این روش، محتوای فایل فشرده استخراج می‌شود و خروجی آن مستقیماً به mysql داده می‌شود.

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

بازیابی دیتابیس PostgreSQL

برای بازیابی بکاپ PostgreSQL، روش کار به نوع فایل بکاپ بستگی دارد. اگر بکاپ به‌صورت فایل SQL متنی تهیه شده باشد، می‌توان از psql استفاده کرد.

فرض کنید نام دیتابیس مقصد example_db و فایل بکاپ backup.sql باشد:

				
					psql -U dbuser -d example_db -f backup.sql
				
			

در این دستور:

  • U-نام کاربر دیتابیس را مشخص می‌کند.
  • d-نام دیتابیس مقصد را تعیین می‌کند.
  • f-فایل SQL حاوی دستورات بازیابی را معرفی می‌کند.

اگر بکاپ با ابزار pg_dump و در قالب سفارشی تهیه شده باشد، معمولاً برای بازیابی آن از pg_restore استفاده می‌شود:

				
					pg_restore -U dbuser -d example_db backup.dump
				
			

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

بررسی صحت فایل‌های ریستور شده

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

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

				
					ls -lah /var/www/example/
				
			

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

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

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

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

				
					ls -l /var/www/example/
				
			

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

بدون دیدگاه

دیدگاهتان را بنویسید

هاستvpsسرور اختصاصی