انتقال سایت و بک آپ از CPanel به دایرکت ادمین

انتقال بک آپ از CPanel به Directadmin

0 228
امتیاز به مطلب
[تعداد: 3   میانگین: 5/5]

انتقال بک آپ CPanel به دایرکت ادمین

یکی از چالش‌های پیش‌رو مدیران سایت و سرور انتقال سایت(های) خود از یک سرور به سرور دیگر است. در روال انتقال اگر کنترل پنل سرور مبدا و مقصد با هم یکسان باشند برای مثال کنترل پنل سرور فعلی CPanel و مقصد نیز CPanel باشد انتقال بکاپ نسبتا ساده است اما اگر شما قصد داشته باشید سایت را از سروری که هم اکنون بر روی آن کنترل پنل CPanel نصب است به سرور دیگری که بر روی آن قصد استفاده از دایرکت‌ادمین را دارید منتقل کنید چالش‌های بیشتری را در مقابل خود خواهید دید که در این مقاله قصد داریم شما را با روال صحیح و سریعترین روش انتقال سایت/بکاپ CPanel به دایرکت ادمین آشنا کنیم.

مسائلی که قبل از اقدام به انتقال بک آپ از سی پنل به دایرکت ادمین باید بدانید

  • فرمت فایل‌های بک آپی که در CPanel ایجاد می‌کنید باید به شکل cpmove-user.tar.gz باشد
  • نسخه دایرکت ادمین شما باید بالاتر از ۱٫۵۷٫۴ باشد
  • بررسی کنید که Roundcube نسخه آخر بر روی سرور شما نصب باشد
  • توجه داشته باشید محتوی بخش Mailing list در CPanel قایل انتقال به دایرکت ادمین نیست چرا که CPanel برای مدیریت Mailing list از سیستم Mailman استفاده میکند و دایرکت ادمین از majordomo و تبدیل آن در حال حاضر غیر قابل انجام است.
  • فرمت مورد استفاده دایرکت ادمین برای نام دیتابیس و نام کاربری دیتابیس همیشه به این صورت است : username_database و username_user همچنین CPanel نیز از همین فرمت استفاده می‌کند اما اغلب به علت محدودیتی که در طول رشته نام دیتابیس و کاربر دیتابیس وجود دارد معمولا CPanel قسمت username را کوتاه‌تر می‌کند این در حالی است که دایرکت ادمین همیشه بخش username را به طور کامل در ابتدای این رشته قرار میدهد، این موضوع در زمان تبدیل و انتقال بک آپ CPanel به دایرکت ادمین نیز صادق است لذا پس از انتقال شما نیاز دارید فایل wp-config.php و فایل‌های مشابه که در اسکریپت‌های دیگر اطلاعات دیتابیس در آن‌ها ذخیره شده است را تغییر دهید.
  • اگر بک آپ‌های شما در CPanel توسط افزونه Jetbackup تهیه شده است توجه داشته باشید که فایل های خروجی این پلاگین به شکل cpmove-user نیست و نیاز به تبدیل آن‌ها دارید که در ادامه روش آن را خواهیم گفت.
  • پیشنهاد می‌کنیم فایل های اصلی بک آپ CPanel با نام cpmove-user.tar.gz را پس از انتقال و بازگردانی بک آپ‌ها بر روی دایرکت ادمین همچنان بر روی سرور خود نگهداری کنید تا در صورت وجود مشکل یا خطا در سایت ها فایل اصلی بک آپ همچنان در اختیار شما باشد.
  • دایرکت‌ادمین امکاناتی دارد که در CPanel وجود ندارد مانند پشتیبانی مستقیم از nginx/openlitespeed ، mysql8 ، rspamd و … همچنین مواردی هم هست که در دایرکت ادمین پشتیبانی نمی‌شود مانند rubby و postgresql بنابراین اگر شما سایتی دارید که از این دو مورد استفاده می‌کند نیاز دارید به صورت دستی انتقال را انجام دهید.
  • نهایت طول رشته نام‌های کاربری سیستم در دایرکت ادمین ۱۰ کارکتر و نام‌های MySQL 16 کارکتر است که شما می‌توانید این عدد را طبق روشی که در ادامه خواهیم گفت افزایش دهید.
  • ما به شما پیشنهاد می‌کنیم نسخه MySQL/MariaDB سرور دایرکت ادمین را به MySQL 5.7+ یا MariaDB 10.x ارتقا دهید.
  • اگر شما تعدادی بک آپ CPanel موجود دارید که فرمت نام آن‌ها به صورت user.tar.gz است می‌توانید به روشی که در ادامه ذکر خواهیم کرد به طور کلی آن‌ها را پیش از اقدام به بازگردانی بک‌آپ به فرمت صحیح cpmove-user تبدیل کنید.
  • اگر شما تعدادی بک آپ CPanel موجود دارید که فرمت نام آن‌ها به صورت backup-…._user.tar.gz است می‌توانید به روشی که در ادامه ذکر خواهیم کرد به طور کلی آن‌ها را پیش از اقدام به بازگردانی بک‌آپ به فرمت صحیح cpmove-user تبدیل کنید.
  • پس از انتقال ممکن است لیست برخی کاربر‌های منتقل شده را در قسمت “Move users between resellers” مشاهده نکنید که روش رفع این مشکل نیز در ادامه ذکر خواهد شد.
  • اگر در هنگام بازگردانی بک‌آپ‌ها در دایرکت ادمین ابتدا نماینده‌ها را بازگردانی نکرده باشید کاربران این نمایندگان زیر مجموعه admin ایجاد می‌شوند که این موضوع هم با روشی که در ادامه به آن می‌پردازیم قابل حل است و می‌توان مجدد کاربران را به نماینده صحیح منتقل کرد.

تبدیل بک آپ Jetpack

با توجه به اینکه افزونه Jetpack بک آپ‌ها را با فرمت cpmove-user ایجاد نمی‌کند جهت بازگردانی بک آپ‌های این افزونه در دایرکت ادمین نیاز به تبدیل فایل‌های بک آپ این افزونه دارید برای این منظور فرمان زیر را پس از انتقال فایل‌ها به سرور دایرکت ادمین خود در ssh آن اجرا نمایید.

jetbackup=yes /usr/local/directadmin/scripts/cpanel_to_da/cpanel_to_da.sh /home/admin/user_backups/cpmove-USERNAME.tar.gz /home/admin/converted_user_backup
chown -R admin. /home/admin/converted_user_backup

افزایش طول رشته نام‌های کاربری سیستمی و MySQL در دایرکت ادمین

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

/usr/local/directadmin/directadmin set max_username_length 16 restart

تبدیل بک آپ سی پنل به فرمت صحیح جهت انتقال به دایرکت ادمین

اگر بک آپ‌هایی در CPanel خود داشته باشید که فرمت آنها به شکل user.tar.gz و یا backup-…-user.tar.gz باشد قبل از اقدام به بازگردانی آن‌ها در دایرکت ادمین باید آن‌ها را به فرمت cpmove.tar.gz تبدیل نمایید که به این منظور میتوانید با اجرای دستورات زیر به سادگی این تبدیل را انجام دهید.

اگر فرمت بک آپ شما به شکل user.tar.gz است دستور زیر را اجرا نمایید

for i in `ls *.tar.gz | grep '^[A-Za-z0-9]*.tar.gz'`; do { mv -vf ${i} cpmove-${i}; }; done

اگر فرمت بک آپ شما به شکل backup-…-user.tar.gz است دستور زیر را اجرا نمایید

for i in `ls backup-[0-9]*.*.tar.gz`; do { USERNAME=`echo $i | cut -d_ -f3 | cut -d'.' -f1`; mv -v $i cpmove-${USERNAME}.tar.gz; }; done

توجه داشته باشید دستورات فوق را در همان دایرکتوری که بک آپ های مورد نظر قرار دارند اجرا کنید

رفع مشکل عدم نمایش کاربر در بخش “Move users between resellers” در دایرکت ادمین

اگر پس از بازگردانی بک آپ‌ها در دایرکت ادمین و مراجعه به قسمت Move users between resellers در دایرکت ادمین تمام کاربران یا برخی از کاربران را مشاهده نکردید، دستور زیر را در ssh سرور دایرکت ادمین خود اجرا نمایید.

#!/bin/sh

cd /usr/local/directadmin/data/users

for r in `ls */reseller.conf | cut -d/ -f1`; do
{
     echo "fixing Reseller $r ...";

     echo -n '' > $r/users.list

     for u in `grep "^creator=$r$" */user.conf | cut -d/ -f1`; do
     {
         ISUSER=`grep -c usertype=user $u/user.conf`
         if [ "$ISUSER" = "1" ]; then
             echo $u >> $r/users.list
         fi
     };
     done;
};
done;

رفع مشکل قرار نداشتن کاربران زیر مجموعه نماینده صحیح

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

for i in `ls user*.tar.gz`; do { RESELLER=`echo $i | cut -d. -f2`; USER=`echo $i | cut -d'.' -f3`; /usr/local/directadmin/scripts/move_user_to_reseller.sh $USER admin $RESELLER; }; done
echo "action=cache&value=showallusers" >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d

آغاز مراحل انتقال بک آپ از CPanel به Directadmin

برای شروع انتقال ابتدا وارد ssh سرور CPanel خود شوید و دو مرحله زیر را با دقت و به ترتیب انجام دهید.

۱- ابتدا با اجرای دستور زیر اقدام به ایجاد بک آپ از کلیه اکانت‌های موجود در CPanel خود نمایید.

mkdir -p /home/all_backups
for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/all_backups; }; done

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

rsync -avt --delete /home/all_backups/ [email protected]_directadmin_server.com:/home/admin/all_backups/

پس از اتمام انتقال فایل‌های بک آپ به سرور جدید به ssh سرور دایرکت ادمین سرور خود متصل شده و دستورات زیر را اجرا کنید.

cd /usr/local/directadmin/custombuild
./build update
./build cpanel_to_da
chown -R admin. /home/admin/all_backups

پس از انجام مراحل فوق با ورود به پنل دایرکت ادمین و مراجعه به بخش backup & restore میتوانید بک آپ های موجود در دایرکتوری /home/admin/all_backupsرا به سادگی بازگردانی (ری استور) نمایید.

اگر بر روی سرور CPanel خود فضای کافی جهت بک‌آپ‌گیری ندارید می‌توانید به صورت تک به تک اقدام از اکانت‌ها بک آپ گرفته و به سرور دایرکت ادمین منتقل کنید و بک آپ را از روی سرور CPanel خود حذف کنید، به این منظور ابتدای یک ssh-keys در سرور CPanel خود ایجاد نموده و دستور زیر را بجای دو دستوری که بالاتر برای اجرا در CPanel ذکر کردیم در سرور CPanel اجرا کنید.

for user in `ls /var/cpanel/users/`; do { /scripts/pkgacct ${user} /home/all_backups; rsync -avt /home/all_backups/cpmove-${user}.tar.gz [email protected]_directadmin_server.com:/home/admin/all_backups/cpmove-${user}.tar.gz; rm -f /home/all_backups/cpmove-${user}.tar.gz ; }; done

برای ایجاد ssh-keys در سرور کافی است دستور ssh-keygen را در ssh اجرا نمایید، پس از اجرا محتویات فایل /root/.ssh/id_rsa.pub را در سرور دایرکت ادمین خود به فایل /root/.ssh/authorized_keys منتقل کنید .

به این ترتیب با اجرای دستور بالا ابتدا از هر اکانت یک فایل بک آپ ایجاد سپس به سرور دایرکت ادمین منتقل و فایل بک آپ از روی سرور CPanel حذف خواهد شد.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.