بکآپ گرفتن
به کمک این آموزش، شما میتوانید از فایلهای ضروری مرزبان که در دو مسیر /opt/marzban/
و /var/lib/marzban/
قرار دارند بصورت اتوماتیک بکآپ بگیرید تا در صورت بروز مشکل یا جابهجایی پنل به مشکل برنخورید.
راهاندازی بکآپ اتوماتیک
مرحه اول
اسکریپت زیر را اجرا کنید تا همه کامندهای مرزبان را داشته باشید.
sudo bash -c "$(curl -sL https://github.com/Gozargah/Marzban-scripts/raw/master/marzban.sh)" @ install-script
مرحله دوم
برای راهاندازی سرویس بکآپ مرزبان دستور زیر را وارد کنید.
marzban backup-service
نکته
حتما این دستور را در root
وارد کنید.
مرحله سوم
سپس از ما توکن ربات را میخواهد، شما باید یک ربات از BotFather بسازید و توکن ربات را وارد کنید.
مرحله چهارم
سپس از ما یک چت آیدی میخواهد و برای دریافت چت آیدی یا کانالی که برای گرفتن بکآپ اختصاص دادهاید، باید یک پیام از خود یا کانال به این ربات UserInfoBot فوروارد کنید که این ربات چت آیدی را برای شما بفرستد.
مرحله پنجم
در این مرحله برای تعیین زمانی که ربات بکآپ را برای شما بفرستد، باید یک عدد از 1
تا 24
برای تعیین کرونجاب وارد کنید. به عنوان مثال اگر عدد 2
را وارد کنید هر 2
ساعت یکبار بکآپ را در ربات تلگرام دریافت خواهید کرد.
نکته
زمان ارسال بکآپ بر اساس زمان سرور خواهد بود.
نکته
برای تغییر زمان ارسال ، تغییر چت آیدی و یا حذف سرویس بکآپ کامند زیر را مجدد وارد کنید.
marzban backup-service
مورد اول برای اعمال تغییرات از ابتدا و مورد دوم برای حذف سرویس بکآپ میباشد.
گرفتن بکآپ لحظهای
اگر از قبل سرویس بکآپ مرزبان را تنظیم کرده باشید، با وارد کردن دستور زیر در همان لحظه بکآپ را در ربات تلگرام دریافت خواهید کرد و همچنین یک کپی از فایل زیپ در مسیر /opt/marzban/backup
ذخیره خواهد شد. اما اگر سرویس بکآپ را تنظیم نکرده باشید، بکآپ لحظهای صرفا به صورت یک فایل زیپ در مسیر یاد شده ذخیره خواهد شد.
marzban backup
نکته
توجه داشته باشید، اگر از قبل یک بکآپ لحظهای گرفته باشید و برای دومین بار این کار را انجام دهید بکآپ دوم جایگزین بکآپ لحظهای قبلی شده و فایل قبلی پاک میشود.
بازگرداندن بکآپ
اگر قصد جا به جا کردن پنل مرزبان را دارید یا به هر دلیلی پنل شما دچار مشکل شده است، به کمک آموزش زیر میتوانید بکآپ خود را بازگردانید که روش آن با توجه به نوع دیتابیس شما متفات است. دیتابیس پنل مرزبان در حالت پیش فرض SQLite میباشد، اما اگر آموزش راهاندازی MySQL را انجام داده باشید روش بازگرداندن دیتابیس کمی متفاوت است.
نکته
بازگرداندن بکآپ دیتابیس MariaDB مشابه با دیتابیس MySQL میباشد.
بازگرداندن بکآپ دیتابیس SQLite
فایلهای ضروری مرزبان در دو مسیر /opt/marzban/
و /var/lib/marzban/
قرار دارند که در خصوص دیتابیس SQLite لازم است اول مرزبان را روی سرور جدید خود نصب کنید، سپس فقط پوشههای مرزبان را در دو مسیر یاد شده جایگزین کنید، بعد مرزبان را با دستور زیر ریستارت کنید تا بکآپ شما بازگردانی شود.
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.
مواجه شوید. در نهایت با دستور زیر مرزبان را ریستارت کنید.
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"
پس از این مرحله، لازمه که یکبار مرزبان را با دستور زیر ریستارت کنید.
marzban restart
حالا بکآپ شما با موفقیت بازگردانی شده است.
توجه
اگر از اسکریپت اتوماتیک بکآپ برای دیتابیس SQLite
استفاده کردید، بعد از مهاجرت به دیتابیس MySQL
باید مجدد اسکریپت را اجرا کنید، چراکه روند بکآپ گرفتن این دو دیتابیس با هم تفاوت دارد.