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

پشتیبان‌گیری خودکار از سرور با Backrest و Restic + تست واقعی بازیابی اطلاعات

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

Amir Jabbari 📅 2 مهر 1405 ⏱ 8 دقیقه مطالعه 👁 0 بازدید 💬 0 دیدگاه

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

بسیاری از مدیران سرور تصور می‌کنند چون یک فایل tar یا mysqldump روی همان سرور دارند، پس بکاپ‌گیریشان اوکی است. اما وقتی سرور اصلی از دست برود، پشتیبان روی همان سرور هم از بین می‌رود. اینجاست که ابزارهای حرفه‌ای مثل Restic و رابط وب آن یعنی Backrest وارد می‌شوند.

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

چرا روش‌های سنتی بکاپ‌گیری برای VPS کافی نیستند؟

روش‌هایی مثل cp، rsync یا mysqldump هرچند ساده‌اند، اما در محیط سرور مجازی چند مشکل جدی دارند:

🔹 رمزنگاری ندارند — اگر کسی به فضای ذخیره‌سازی دسترسی پیدا کند، همه فایل‌ها را می‌خواند.

🔹 نسخه‌بندی واقعی ندارند — فقط یک کپی از وضعیت فعلی می‌سازند، نه تاریخچه تغییرات.

🔹 حذف هوشمند ندارند — با گذشت زمان یا حجم بکاپ‌ها منفجر می‌شود، یا باید دستی همه‌چیز را پاک کنید.

🔹 تست بازیابی دشوار است — پیدا کردن یک فایل خاص از میان ده‌ها آرشیو تقریباً غیرممکن می‌شود.

Restic این مشکلات را از ریشه حل کرده است. این ابزار که با زبان Go نوشته شده، رمزنگاری را به صورت پیش‌فرض انجام می‌دهد، بکاپ‌ها را به صورت افزایشی ذخیره می‌کند (فقط تغییرات)، و از دهها مقصد ذخیره‌سازی از جمله S3، Backblaze B2، SFTP و دیسک محلی پشتیبانی می‌کند .

Backrest چیست و چه نیازی را برطرف می‌کند؟

Restic به تنهایی یک ابزار خط فرمان (CLI) است. برای کسی که فقط یک سرور دارد، کار با خط فرمان مشکلی نیست. اما وقتی تعداد سرورها و مخازن بکاپ زیاد می‌شود، مدیریت زمان‌بندی، بررسی وضعیت اجراها، حذف نسخه‌های قدیمی و بازیابی فایل‌ها از خط فرمان خسته‌کننده می‌شود.

Backrest دقیقاً همین‌جا وارد می‌شود. یک پنل تحت وب سبک و اپن‌سورس که روی Restic سوار می‌شود و امکان مدیریت گرافیکی مخازن، پلن‌های بکاپ، زمان‌بندی خودکار (Cron)، مشاهده Snapshot ها، و بازیابی فایل‌ها را فراهم می‌کند .

نکته جالب این است که Backrest خودش نسخه سازگار Restic را در اولین اجرا دانلود می‌کند، بنابراین نیازی به نصب دستی Restic ندارید — هرچند اگر Restic از قبل نصب باشد، از همان استفاده می‌کند .

پیش‌نیازهای نصب

🔹 یک سرور مجازی لینوکسی (Ubuntu 22.04 یا 24.04 پیشنهاد می‌شود)

🔹 دسترسی root یا کاربر با sudo

🔹 حداقل ۵ گیگابایت فضای خالی برای تست

🔹 اتصال SSH به سرور

اگر هنوز سرور مناسب ندارید، می‌توانید از سرور مجازی ایران ایرانیکاسرور با دیسک NVMe و پهنای باند مناسب استفاده کنید که برای اجرای سرویس‌های بکاپ‌گیری ایده‌آل است.

نصب Backrest به روش استاندارد

ساده‌ترین راه نصب Backrest استفاده از اسکریپت رسمی آن است. ابتدا با SSH وارد سرور شوید:

ssh root@SERVER_IP

سپس اسکریپت نصب را اجرا کنید:

curl -fsSL https://raw.githubusercontent.com/garethgeorge/backrest/main/install.sh | bash

این اسکریپت فایل اجرایی را در مسیر /usr/local/bin قرار می‌دهد و یک سرویس systemd برای اجرای خودکار در زمان بوت ایجاد می‌کند .

پس از نصب، سرویس را بررسی کنید:

systemctl status backrest

باید وضعیت active (running) را ببینید.

ورود به پنل Backrest و تنظیمات اولیه

به صورت پیش‌فرض Backrest روی پورت 9898 گوش می‌دهد. در مرورگر خود وارد شوید:

http://SERVER_IP:9898

در اولین ورود، از شما یک Instance ID و یک نام کاربری و رمز عبور درخواست می‌شود. حتماً یک رمز قوی انتخاب کنید. اگر سرور روی اینترنت عمومی است، توصیه می‌شود پورت 9898 را با فایروال محدود کنید یا Backrest را پشت یک Reverse Proxy با HTTPS قرار دهید .

ساخت اولین مخزن بکاپ (Repository)

در پنل Backrest، از منوی سمت چپ گزینه Repositories را انتخاب کنید و روی Add Repository بزنید. فرم را به این صورت پر کنید:

🔹 Name: backup-main

🔹 URI: /backup

🔹 Password: یک رمز بسیار قوی و منحصربه‌فرد

⚠️ هشدار حیاتی: رمز مخزن Restic تنها راه دسترسی به بکاپ‌هاست. اگر آن را فراموش کنید، هیچ راهی برای بازیابی اطلاعات وجود ندارد. رمز را در یک Password Manager یا محل امن خارج از سرور ذخیره کنید.

Backrest به صورت خودکار دستور restic init را اجرا می‌کند و مخزن آماده می‌شود.

ایجاد پلن بکاپ زمان‌بندی‌شده

حالا نوبت به تنظیم بکاپ خودکار می‌رسد. از منوی Plans گزینه Add Plan را انتخاب کنید.

مسیرهای پیشنهادی برای بکاپ:

🔹 /var/www — فایل‌های سایت

🔹 /etc/nginx یا /etc/apache2 — تنظیمات وب‌سرور

🔹 /etc/php — تنظیمات PHP

🔹 /home — فایل‌های کاربران

🔹 /etc — تنظیمات کلی سیستم

در بخش زمان‌بندی، یک Cron Expression استاندارد وارد کنید. مثلاً برای بکاپ روزانه ساعت ۳ بامداد:

0 3 * * *

و برای بکاپ هفتگی، هر یکشنبه ساعت ۴ صبح:

0 4 * * 0

پس از ذخیره، می‌توانید در همان لحظه یک Run Now بزنید تا بکاپ اولیه اجرا شود و مطمئن شوید همه‌چیز درست کار می‌کند .

بکاپ فقط وقتی ارزش دارد که سرورتان در دسترس باشد

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

📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور

مدیریت فضای بکاپ: حذف خودکار نسخه‌های قدیمی

اگر هر روز یک Snapshot جدید بسازید، بعد از چند ماه فضای سرور پر می‌شود. Restic یک دستور قدرتمند به نام forget دارد که با سیاست‌های نگهداری (Retention Policy) کار می‌کند.

یک سیاست متعادل برای اکثر پروژه‌ها:

🔹 ۷ بکاپ روزانه

🔹 ۴ بکاپ هفتگی

🔹 ۱۲ بکاپ ماهانه

در Backrest می‌توانید این سیاست را در تنظیمات Repository یا Plan اعمال کنید. اگر می‌خواهید دستی اجرا کنید:

restic forget –keep-daily 7 –keep-weekly 4 –keep-monthly 12 –prune –repo /backup

دستور –prune داده‌های واقعاً بی‌استفاده را از مخزن حذف می‌کند و فضای دیسک آزاد می‌شود .

تست سلامت مخزن

قبل از هر چیز، مطمئن شوید ساختار مخزن سالم است:

restic check –repo /backup

خروجی مطلوب:

no errors were found

تست بازیابی کامل: مهم‌ترین مرحله

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

یک مسیر آزمایشی بسازید:

mkdir /restore-test

آخرین Snapshot را بازیابی کنید:

restic restore latest –target /restore-test –repo /backup

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

ls -la /restore-test

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

بازیابی فقط یک فایل خاص

گاهی فقط یک فایل حذف شده نیاز به بازگردانی دارد. مثلاً فایل کانفیگ یک سایت:

restic restore latest –target /tmp –include /var/www/site/config.php –repo /backup

فایل بازیابی‌شده در مسیر /tmp/var/www/site/config.php قرار می‌گیرد.

بکاپ را روی سرور دیگر ذخیره کنید (قانون ۳-۲-۱)

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

استاندارد صنعتی 3-2-1 می‌گوید: ۳ نسخه از داده، روی ۲ نوع رسانه مختلف، که ۱ نسخه حتماً خارج از سایت (Offsite) باشد .

Restic به راحتی می‌تواند بکاپ را روی یک سرور دیگر از طریق SFTP ذخیره کند:

restic -r sftp:backupuser@backup-server:/backup backup /var/www

در Backrest هم کافی است URI مخزن را به صورت sftp:user@host:/path تنظیم کنید و کلید SSH را در سرور مقصد قرار دهید.

مشکلات رایج و راه‌حل‌ها

🔹 خطای Repository not found — مسیر مخزن اشتباه است. با ls /backup بررسی کنید.

🔹 رمز مخزن را فراموش کرده‌اید — متأسفانه راهی برای بازیابی نیست. همیشه رمز را در جای امن نگه دارید.

🔹 بکاپ زمان‌بندی‌شده اجرا نمی‌شود — سرویس را بررسی کنید: systemctl status backrest و لاگ‌ها را ببینید: journalctl -u backrest.

🔹 فضای دیسک پر شده — دستور restic forget –prune را اجرا کنید.

نکات امنیتی مهم

🔹 بکاپ را روی همان سرور نگه ندارید.

🔹 رمز Repository را در محل امن ذخیره کنید.

🔹 همیشه تست Restore انجام دهید.

🔹 دسترسی به پنل Backrest را محدود کنید (فایروال، Reverse Proxy با HTTPS).

🔹 از احراز هویت قوی برای پنل استفاده کنید.

مشکلی در پیکربندی بکاپ دارید؟

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

📞 تماس با پشتیبانی: 021-91302460 | ایرانیکاسرور

جمع‌بندی

ترکیب Backrest و Restic یک سیستم بکاپ حرفه‌ای، امن و کاملاً قابل مدیریت ایجاد می‌کند. Restic با رمزنگاری سرتاسری، بکاپ افزایشی و پشتیبانی از دهها مقصد ذخیره‌سازی، امنیت داده‌ها را تضمین می‌کند. Backrest هم با پنل وب خود، زمان‌بندی، مدیریت و بازیابی را از یک محیط گرافیکی ساده فراهم می‌کند.

اما مهم‌ترین نکته اینجاست: بکاپی که تست بازیابی نشده باشد، بکاپ نیست. حتماً به صورت دوره‌ای فرآیند Restore را روی یک سرور آزمایشی یا پوشه موقت انجام دهید تا در لحظه بحران، شگفت‌زده نشوید. قانون ۳-۲-۱ را جدی بگیرید و همیشه یک نسخه از بکاپ را خارج از سرور اصلی نگه دارید.

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

این آموزش برایت مفید بود؟ می‌توانی لینک آن را ذخیره یا برای دیگران ارسال کنی.

Amir Jabbari

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

برای اجرای آموزش به زیرساخت نیاز داری؟

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

ایرانیکاسرور
گفت‌وگو درباره آموزش

دیدگاه‌ها

0 دیدگاه برای این مطلب ثبت شده است.

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

دیدگاه یا سؤال خود را بنویسید

ایمیل شما منتشر نمی‌شود. فیلدهای ضروری مشخص شده‌اند.