Skip to content

بک‌آپ گرفتن

به کمک این آموزش، شما می‌توانید از فایل‌های ضروری مرزبان که در دو مسیر /opt/marzban/ و /var/lib/marzban/ قرار دارند بصورت اتوماتیک بک‌آپ بگیرید تا در صورت بروز مشکل یا جا‌به‌جایی پنل به مشکل برنخورید.

راه‌اندازی بک‌آپ اتوماتیک

مرحه اول

اسکریپت زیر را اجرا کنید تا همه کامندهای مرزبان را داشته باشید.

bash
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install-script

مرحله دوم

برای راه‌اندازی سرویس بک‌آپ مرزبان دستور زیر را وارد کنید.

bash
marzban backup-service

نکته

حتما این دستور را در root وارد کنید.

مرحله سوم

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

مرحله چهارم

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

مرحله پنجم

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

نکته

زمان ارسال بک‌آپ بر اساس زمان سرور خواهد بود.

نکته

برای تغییر زمان ارسال ، تغییر چت آیدی و یا حذف سرویس بک‌آپ کامند زیر را مجدد وارد کنید.

bash
marzban backup-service

مورد اول برای اعمال تغییرات از ابتدا و مورد دوم برای حذف سرویس بک‌آپ می‌باشد.

گرفتن بک‌آپ لحظه‌ای

اگر از قبل سرویس بک‌آپ مرزبان را تنظیم کرده باشید، با وارد کردن دستور زیر در همان لحظه بک‌آپ را در ربات تلگرام دریافت خواهید کرد و همچنین یک کپی از فایل زیپ در مسیر /opt/marzban/backup ذخیره خواهد شد. اما اگر سرویس بک‌آپ را تنظیم نکرده باشید، بک‌آپ لحظه‌ای صرفا به صورت یک فایل زیپ در مسیر یاد شده ذخیره خواهد شد.

bash
marzban backup

نکته

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

بازگرداندن بک‌آپ

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

نکته

بازگرداندن بک‌آپ دیتابیس MariaDB مشابه با دیتابیس MySQL می‌باشد.

بازگرداندن بک‌آپ دیتابیس SQLite

فایل‌های ضروری مرزبان در دو مسیر /opt/marzban/ و /var/lib/marzban/ قرار دارند که در خصوص دیتابیس SQLite لازم است اول مرزبان را روی سرور جدید خود نصب کنید، سپس فقط پوشه‌های مرزبان را در دو مسیر یاد شده جایگزین کنید، بعد مرزبان را با دستور زیر ریستارت کنید تا بک‌آپ شما بازگردانی شود.

bash
marzban restart

بازگرداندن بک‌آپ دیتابیس MySQL از طریق PhpMyAdmin (روش اول)

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

برای این کار پوشه mysql را روی سرور جدید که در /var/lib/marzban/mysql قرار دارد پاک کنید تا بعد از ریستارت مرزبان، پوشه و فایل‌های داخل آن دوباره ایجاد شود. سپس به پنل مدیریت دیتابیس PhpMyAdmin بروید که به صورت پیش فرض روی آدرس IP:8010 در دسترس می‌باشد.

نکته

برای اینکه پنل مدیریت دیتابیس PhpMyAdmin برای شما در دسترس باشد باید ابتدا طبق آموزش راه‌اندازی MySQL آن را فعال کرده باشید.

در منوی سمت چپ صفحه گزینه marzban را انتخاب کنید، سپس باکس Check all را انتخاب کنید، بعد از قسمت سمت راست آن که With selected: نام دارد گزینه drop را انتخاب کنید، سپس گزینه Yes را بزنید. حالا دیتابیس MySQL خالی شده است و شما می‌توانید فایل بک‌آپ SQL خودتان را بازگردانی کنید.

از قسمت بالای صفحه روی Import بزنید، سپس در قسمت File to import: روی بخش Browse بزنید و فایل SQL خود را انتخاب کنید، بعد دکمه Import را در انتهای صفحه بزنید و چند لحظه صبر کنید. اگر همه چیز را درست انجام داده باشید باید با پیام سبز رنگ Import has been successfully finished. مواجه شوید. در نهایت با دستور زیر مرزبان را ریستارت کنید.

bash
marzban restart

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

نکته

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

بازگرداندن بک‌آپ دیتابیس MySQL از طریق Terminal (روش دوم)

اگر می‌خواهید از طریق ترمینال سرور و بدون نیاز به PhpMyAdmin بازگردانی بک‌آپ دیتابیس MySQL را انجام بدید، این روش مناسب شماست. در ابتدا لازمه که فایل بک‌آپ SQL خود را به سرورتون آپلود کنید، سپس در صفحه‌ی ترمینال سرورتون دستور زیر را با جایگذاری متغیرها وارد کنید. متغیر DB_PASSWORD را با رمزعبور دیتابیس‌تون جایگزین کنید. متغیر SQL_BACKUP_ADDRESS را با آدرس فایل بک‌آپ SQL جایگزین کنید. سپس دستور را وارد کنید.

docker exec -i marzban-mysql-1 mysql -u root -p"DB_PASSWORD" marzban < "SQL_BACKUP_ADDRESS"

پس از این مرحله، لازمه که یکبار مرزبان را با دستور زیر ریستارت کنید.

bash
marzban restart

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

توجه

اگر از اسکریپت اتوماتیک بک‌آپ برای دیتابیس SQLite استفاده کردید، بعد از مهاجرت به دیتابیس MySQL باید مجدد اسکریپت را اجرا کنید، چراکه روند بک‌آپ گرفتن این دو دیتابیس با هم تفاوت دارد.

منتشر شده تحت لایسنس AGPL-3.0