جلوگیری از مشکلات همگام‌سازی، Multi Server Setup و انتقال داده با rsync

این مقاله نحوه انتقال کاربران بین ریسلرها، جلوگیری از مشکلات همگام‌سازی هنگام بک‌آپ/ری‌استور، مدیریت انتقال بین سرورهای لینک‌شده در Multi Server Setup، رفع خطای Domain Exists، و انتقال داده‌های حجیم با rsync را توضیح می‌دهد. تمام مراحل، نکات مهم و دستورات لازم برای یک مهاجرت بدون مشکل ارائه شده است.

DirectAdmin MigrationMove Usersrsync Transfer

~3 دقیقه مطالعه • بروزرسانی ۹ اسفند ۱۴۰۴

1. انتقال کاربران بین ریسلرها


DirectAdmin یک ابزار داخلی برای انتقال کاربران بین ریسلرها ارائه می‌دهد:


Admin Level → Account Manager → Move Users Between Resellers

یا مستقیماً از طریق URL:


https://yourdomain.com:2222/CMD_MOVE_USERS

این ابزار در واقع رابط گرافیکی اسکریپت move_user_to_reseller.sh است. برای انتقال از طریق SSH:


/usr/local/directadmin/scripts/move_user_to_reseller.sh 'user' 'oldreseller' 'newreseller'

2. جلوگیری از مشکلات همگام‌سازی هنگام بک‌آپ/ری‌استور


در مهاجرت از سرور A به سرور B، ممکن است بین زمان ساخت بک‌آپ و زمان تغییر DNS، داده‌ها روی سرور A تغییر کنند. نگرانی‌های اصلی:


  • ایمیل‌های جدید روی A
  • تغییرات دیتابیس
  • تغییرات کاربران (فایل‌ها، تنظیمات، پسوردها)

نکته مهم: قبل از مهاجرت، TTL دامنه را کاهش دهید.


2.1 جلوگیری از گم‌شدن ایمیل


برای جلوگیری از از دست رفتن ایمیل:


  • پورت 25 را روی سرور A موقتاً ببندید (سرورهای ارسال‌کننده دوباره تلاش می‌کنند)
  • یا درست قبل از تغییر DNS یک rsync نهایی از ایمیل‌ها انجام دهید

2.2 مدیریت تغییرات دیتابیس


برای جلوگیری از اختلاف دیتابیس:


  • در لحظه آخر یک mysqldump جدید گرفته و روی B ایمپورت کنید
  • یا موقتاً سایت روی A را به دیتابیس B وصل کنید
  • یا سایت را در حالت Maintenance قرار دهید

2.3 سایر تغییرات کاربران


می‌توانید کاربر را روی A موقتاً Suspend کنید و یک صفحه "در حال انتقال" نمایش دهید.


3. انتقال کاربران بین سرورهای لینک‌شده در Multi Server Setup


اگر سرورهای A و B با MSS لینک شده باشند، هنگام ری‌استور روی B ممکن است خطای “Domain Already Exists” دریافت کنید.


3.1 مراحل صحیح انتقال


مرحله 1: بک‌آپ را روی A بسازید و به B منتقل کنید.


مرحله 2: روی B به مسیر زیر بروید:


Admin Level → Multi Server Setup

  • گزینه Domain Check را غیرفعال کنید
  • گزینه Zone Transfer فعال بماند

مرحله 3: تنظیمات ری‌استور را تغییر دهید:


Admin Level → Admin Backup/Transfer → Backup/Restore Settings

گزینه زیر را فعال کنید:


Check for domain conflict in domainowners instead of named.conf

مرحله 4: کاربر را روی B ری‌استور کنید.


مرحله 5: Domain Check را دوباره فعال کنید.


مرحله 6: هنگام حذف کاربر از A، گزینه زیر را فعال کنید:


Leave DNS

این کار باعث می‌شود DNS باقی بماند و فقط اکانت حذف شود.


4. انتقال داده‌های حجیم با rsync


اگر کاربر حجم زیادی در مسیر /home/username/domains/ دارد، بهتر است این مسیر را از بک‌آپ حذف کنید و جداگانه منتقل کنید.


4.1 ساخت بک‌آپ بدون Domains Directory


Admin Level → Admin Backup/Transfer → Create Backup → Step 4: What

گزینه زیر را غیرفعال کنید:


Domains Directory

4.2 ری‌استور بک‌آپ روی سرور B


فایل tar.gz را به‌صورت معمول ری‌استور کنید.


4.3 انتقال پوشه دامنه‌ها با rsync


روی سرور B دستور زیر را اجرا کنید:


rsync -ave 'ssh -p 22' 1.2.3.4:/home/username/domains/ /home/username/domains/

جایگزین کنید:


  • 1.2.3.4 → IP سرور A
  • 22 → پورت SSH

برای امنیت بیشتر:


rsync -ave 'ssh -l username -p 22' oldserver:/home/username/domains/ /home/username/domains/

این روش فقط دسترسی سطح کاربر را استفاده می‌کند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی