نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: بش اسکریپت انتقال اکانت‌های سی‌پنل به دایرکت‌ادمین

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    3
    تشکر تشکر کرده 
    26
    تشکر تشکر شده 
    1
    تشکر شده در
    تشکر شده 1 بار در 1 پست

    Post بش اسکریپت انتقال اکانت‌های سی‌پنل به دایرکت‌ادمین

    سلام به همه دوستان و همکاران

    همونطور که اطلاع دارید با افزایش نجومی هزینه‌های لایسنس سی‌پنل خیلی از سرویس‌دهنده‌ها تصمیم دارن سی‌پنل رو از سرورهاشون حذف کنن و دایرکت‌ادمین رو جایگزین اون کنن.
    طبیعتا تنها راه انجام این انتقال اینه که سرور جدیدی با کنترل‌پنل دایرکت‌ادمین ستاپ بشه و اکانت‌ها از سی‌پنل به دایرکت ادمین منتقل و ریستور بشن.خبر خوب این که دایرکت‌ادمین اخیرا اسکریپت تبدیل بکاپ سی‌پنل به دایرکت‌ادمین رو تو نسخه جدیدش اضافه کرده و اگر شما فول بکاپ سی‌پنل رو با فرمت اسم cpmove-user.tar.gz روی دایرکت‌ادمین ریستور کنید، بصورت خودکار به فول بکاپ دایرکت‌ادمین تبدیل و ریستور می‌شه.یک راه انتقال اینه که از همه اکانت‌های سی‌پنل فول بکاپ بگیرید، به یکباره همه رو به سرور دایرکت‌ادمین انتقال بدید و در نهایت همه اکانت‌ها رو یک جا ریستور بزنید.این کار اشکالاتی داره…


    • اول این که تهیه فول بکاپ از همه اکانت‌ها دیسک رو تا حد زیادی اشغال می‌کنه. شما یک فول بکاپ از همه اکانت‌ها رو سرور سی‌پنل دارید، و دو فول بکاپ هم روی سرور دایرکت‌ادمین خواهید داشت. (یکی بکاپ‌های سی‌پنل و دیگری بکاپ‌های تبدیل شده به دایرکت ادمین)
    • پروسه تهیه فول بکاپ از همه اکانت‌ها زمان‌بره، چه برسه به این که این بکاپ‌ها بخوان به دایرکت‌ادمین هم منتقل بشن و تازه اونجا شروع به ریستور کنن. با این حساب اطلاعات وارد شده توسط کاربرها تو مدت نقل و انتقال از بین می‌ره.
    • وقتی ریستور همه اکانت ها همزمان انجام بشه، عیب یابی سخت می‌شه، تا زمانی که ریستور بکاپ ها به اتمام نرسه، دایرکت ادمین لاگی از وضعیت ریستور و خطاهای احتمالی اعلام نمی‌کنه.
    • احتمالا سایت‌ها داون تایم زیادی خواهند داشت و این موضوع کاربرها رو ناراضی می‌کنه!

    خب چه باید کرد؟ هرکس به طریقی به هر حال این انتقال رو مدیریت می‌کنه، من برای انجام این کار اسکریپتی نوشتم که انتقال بکاپ‌ها رو تک تک انجام می‌ده. به این صورت که:


    • از هر اکانت روی سی‌پنل فول بکاپ می‌گیره. (فول بکاپ شامل همه اطلاعات اکانت روی سی‌پنل به جز دایرکتوری public_html هست)
    • فول بکاپ رو به دایرکت‌ادمین انتقال می‌ده و ریستور می‌کنه.
    • محتوای دایرکتوری public_html یوزر سی‌پنل رو به public_html یوزر دایرکت ادمین انتقال می‌ده.
    • IP اکانت رو روی سرور سی‌پنلی به IP سرور دایرکت‌ادمین تغییر می‌ده تا داون تایم به کمترین حد ممکن برسه.
    • بعد از انتقال، اکانت رو روی سی‌پنل ساسپند می‌کنه تا کاربر بعد انتقال دیگه تغییراتی روی اکانت سی‌پنلی نده.
    • فول بکاپ سی‌پنل هر اکانت رو بعد از انتقال از هر دو سرور سی‌پنل و دایرکت‌ادمین حذف می‌کنه تا فضا کمتر اشغال بشه.
    • با توجه به این که ریستور تک تک انجام می‌شه، بعد ریستور هر اکانت لاگش تو دایرکت‌ادمین درج می‌شه تا اگر اشکالی هست بشه سریعا رفع کرد.
    • و هزاران هزار جایزه نقدی و غیرنقدی دیگر…

    خب، اسکریپت رو این پایین می‌تونید ببینید:

    کد:
     
    #!/bin/sh #You can get the script updates from https://bit.ly/2ktJVHn DEST="192.168.1.1" #Your DirectAdmin Server IP PORT="22" #Your Directadmin Server ssh Port cd /var/cpanel/users for USER in *; do if [ "$USER" != "system" ] then echo "starting transfer process for $USER" sleep 2 #backup cpanel account (public_html excludes) and transfer to directadmin server. /scripts/pkgacct $USER --skippublichtml rsync -av -e "ssh -p $PORT" /home/cpmove-$USER.tar.gz root@$DEST:/backup/ #Restore backup in directadmin server. ssh -p $PORT root@$DEST " chown admin.admin /backup/ chown admin.admin /backup/cpmove-$USER.tar.gz echo 'action=restore&ip%5Fchoice=select&ip=$DEST&local%5Fpath=%2Fbackup&owner=admin&select%30=cpmove-$USER.tar.gz&type=admin&value=multiple&when=now&where=local' >> /usr/local/directadmin/data/task.queue echo "backup is restoring in DirectAdmin!" sleep 2 while \$(grep -Fq "action=restore" /usr/local/directadmin/data/task.queue 2>/dev/null); do printf "%s""$i" .; sleep 2; done; while \$(test ! -d /home/$USER/public_html); do printf "%s""$i" .; sleep 2; done; printf '\n' echo "backup restoration completed in DirectAdmin!" sleep 2 " #transfer public_html files and dirs to destinaton server rsync -av -e "ssh -p $PORT" /home/$USER/public_html/ root@$DEST:/home/$USER/public_html/ ssh -p $PORT root@$DEST " chown -R $USER.$USER /home/$USER/public_html/ find /home/$USER/public_html/ -type d -exec chmod 755 {} \; " #remove backup files in order to free space ssh -p $PORT root@$DEST "rm /backup/cpmove-$USER.tar.gz" rm /home/cpmove-$USER.tar.gz #change user ip in order to transfer site loding to destination server. /usr/local/cpanel/bin/setsiteip -u $USER $DEST /scripts/suspendacct $USER "User transferred to Direct Admin." echo "transfer process for $USER has been completed!" sleep 2 printf '\n' fi
    done
    چند نکته که برای استفاده از اسکریپت حتما باید بهش توجه داشته باشید:

    • به جای مقدار 192.168.1.1 روی اسکریپت باید IP سرور دایرکت‌ادمین رو واردکنید.
    • اگر سرور شما از پورتی به جز 22 برای اتصال ssh استفاده می‌کنه، به جای مقدار 22 روی اسکریپت باید این پورت رو قرار بدید.
    • حتما و حتما قبل از شروع انتقال، IP سرور دایرکت ادمین رو از بخش Add a New IP Address روی پنل WHM به سی‌پنل اضافه کنید، در غیر اینصورت تغییر IP اکانت‌ها بعد انتقال به IP دایرکت‌ادمین انجام نمی‌شه. اگر کلا می‌خواید تغییر IP انجام نشه، لاین زیر رو از اسکریپت حذف کنید:
      کد:
      /usr/local/cpanel/bin/setsiteip -u $USER $DEST
    اگر می‌خواید بعد از انتقال، اکانت روی سی‌پنل ساسپند نشه، لاین زیر رو از اسکریپت حذف کنید:
    کد:
    /scripts/suspendacct $USER "User transferred to Direct Admin."
  2. حتما و حتما قبل از انتقال چک کنید که همه، تکرار می‌کنم همه اکانت‌ها آنساسپند باشن. اگر اکانتی ساسپند باشه، انتقال روی اون اکانت گیر می‌کنه و دیگه پیش نمی‌ره.

  3. در نظر داشته باشید برای برقراری ارتباط ssh بین دو سرور لازمه که اتصال توسط کلید ssh صورت بگیره و نه پسورد. برای این منظور کافیه که محتویات فایل زیر رو از سرور سی‌پنل،

    کد:
    cat /root/.ssh/id_rsa.pub

    به انتهای فایل زیر رو سرور دایرکت‌ادمین اضافه کنید.
    کد:
    nano /root/.ssh/authorized_keys
    اگر فایل اول روی سرور سی‌پنل شما وجود نداشت، با دستور زیر می‌تونید اون رو ایجاد کنید:
    کد:
    ssh-keygen

    برای استفاده از این اسکریپت نیازی نیست حرفه‌ای باشید، حتی اگر اولین بارتون هست که می‌خواید یک بش اسکریپت رو روی سرورتون اجرا کنید می‌تونید به شکل زیر عمل کنید:اول با دستور زیر یک فایل بسازید، (مثلا به اسم xfer-cp-accts-to-da.sh)
    کد:
    nano xfer-cp-accts-to-da.sh

    بعد از اجرای دستور بالا، محتویات اسکریپت رو بعد از اعمال تغییرات لازم توی ترمینال کپی کنید و با استفاده از ctrl+x تغییرات رو ذخیره کنید.سپس با دستور زیر به فایل پرمیشن لازم برای اجرا شدن رو بدید:
    کد:
    chmod 0755 transfer-cp-to-da.sh

    و در نهایت با اجرای دستور زیر، اسکریپت رو اجرا کنید:
    کد:
    ./transfer-cp-to-da.sh
    بی‌صبرانه منتظر شنیدن اشکالات احتمالی گزارش شده توسط شما هستم!منبع: بش اسکریپت انتقال اکانت‌های سی‌پنل به دایرکت‌ادمین
ویرایش توسط FaЯshid : September 11th, 2019 در ساعت 17:19
My Blog: farshid.xyz
پاسخ با نقل قول پاسخ با نقل قول

  • # ADS




     

  • اطلاعات موضوع

    کاربرانی که در حال مشاهده این موضوع هستند

    در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

    موضوعات مشابه

    1. درخواست لایسنس اشتراکی سی‌پنل
      توسط Ramexanloo در انجمن درخواست انواع لایسنس
      پاسخ ها: 6
      آخرين نوشته: September 7th, 2019, 16:19
    2. آموزش ایجاد Email Forwarders در سی‌پنل
      توسط fanza در انجمن سی پنل CPanel
      پاسخ ها: 0
      آخرين نوشته: March 8th, 2019, 10:06
    3. لایسنس سی‌پنل اشتراکی و ابیوز؟
      توسط Peugeot در انجمن سی پنل CPanel
      پاسخ ها: 9
      آخرين نوشته: December 10th, 2018, 23:22
    4. قیمت سی‌پنل
      توسط hamed_naghdi در انجمن سی پنل CPanel
      پاسخ ها: 4
      آخرين نوشته: August 23rd, 2016, 14:24
    5. پاسخ ها: 11
      آخرين نوشته: April 20th, 2013, 22:46

    مجوز های ارسال و ویرایش

    • شما نمیتوانید موضوع جدیدی ارسال کنید
    • شما امکان ارسال پاسخ را ندارید
    • شما نمیتوانید فایل پیوست کنید.
    • شما نمیتوانید پست های خود را ویرایش کنید
    •