در صورتی که قصد تغییر سرورتان را داشته باشید، باید قادر باشید که اکانت های روی سرور مبدا را به سرور مقصد منتقل کنید. اگر هر دوی این سرورها از یک نوع کنترل پنل، مثل سی پنل استفاده کنند، کار راحت است. در اینجا فرض ما این است که هر دو سرور از نوع cPanel/WHM هستند.
گاهی اوقات ممکن است به علت محدودیتی که برای لایسنس سی پنل وجود دارد، با چالش انتقال اکانت ها از روی یک سرور به سرور دیگر مواجه گردید. هر لایسنس سی پنل تنها روی یک IP فعال میشود و همین باعث می شود که ما فقط یا روی سرور مبدا و یا مقصد بتوانیم لایسنس را فعال نگه داریم. یک راه دیگر هم وجود دارد و آن این است که روی یکی از سرورها، که معمولاً سرور جدید است، از لایسنس تریال (Trial) یا آزمایشی سی پنل استفاده کنید که البته این هم برای خودش مشکلاتی دارد.
مثلاً اگر سرور شما ایران باشد، نمیتوانید سی پنل را به صورت تریال فعال کنید (به علت تحریم ایران از طرف شرکتهای خارجی از جمله سی پنل). یا اگر از قبل روی همین آی پی تریال فعال شده باشد، از طرف سی پنل مجدد تریال فعال نخواهد شد. یا اگر تعداد اکانت های شما از یک میزان خاصی بیشتر باشد، لایسنس تریال فقط برای تعداد محدودی اکانت کار خواهد کرد. که این هم برای خیلیها دردسرساز است. این ها همگی محدودیت هایی بودند که حتما باید در نظر بگیرید.
اگر روی هر دو سرور لایسنس فعال وجود داشته باشد، خیلی راحت با استفاده از ابزار Transfer Tool از سرور جدید، دسترسی سرور قدیمی را به سی پنل میدهیم و اکانتهای مورد نیاز برای انتقال را انتخاب میکنیم و در صورتی که مشکل دیگری وجود نداشته باشد، انتقال اکانت ها به صورت خودکار و سریع صورت میگیرد.
اما فرض ما در اینجا این است که تنها یک لایسنس فعال برای یک سرور در اختیار داریم. در اینجا باید چه کار کنیم؟
راهکار ما استفاده از اسکریپت pkgacct سیپنل، و تهیهٔ یک فایل بکاپ از هر اکانت و انتقال دستی آن به سرور جدید است. بنابراین در این حالت نیازی نیست که روی سرور مبدا، که اکانتهای ما در ابتدا روی آن قرار دارند، لایسنس فعال داشته باشیم. چون از طریق خط فرمان از هر اکانتی که خواسته باشیم میتوانیم یک فایل فشردهٔ تهیه کنیم و انتقال را دستی انجام دهیم.
اما روی سرور مقصد، طبیعتاً بهتر است که برای نصب کنترل پنل و همچنین بازگردانی (ریستور) کردن اکانت ها لایسنس فعال وجود داشته باشد که ما لایسنس را روی این سرور نصب میکنیم.
حال چطور روی سرور مبداء از تمامی اکانت ها بکاپ بگیریم؟ دستور زیر را درون خط فرمان بزنید. به جای USERNAME باید نام کاربری اکانتی که قصد تهیهٔ بکاپ و انتقالش را دارید را جایگزین کنید.
/scripts/pkgacct USERNAME DIRECTORY
به جای DIRECTORY هم اگر مسیری از فایل سیستم لینوکس را بزنید، فایل بکاپ در آنجا ذخیره میشود. اگر هم چیزی نزنید در مسیر /home بکاپ از اکانت مربوطه گرفته میگردد.
پس این کار را برای هر اکانتی که قصد انتقالش را دارید میتوانید انجام دهید. حتما به فضای خالی هارد سرور مبداء خود دقت کنید که اگر فضا کم است، مجبورید یکی یکی از اکانت ها بکاپ بگیرید و به سرور جدید منتقلش کنید و سپس آن را از روی سرور مبداء حذف کنید.
پس در اینجا ما یک فایل tar.gz داریم که باید آن را به سرور مقصد منتقل کنیم. برای این کار از روشهای مختلفی میتوان استفاده کرد که امنترین و راحتترین آن استفاده از دستور scp است. آموزش و توضیحات این دستور در دیگر مقالات آموزشی بخش مرکز آموزش وبنولوگ آورده شده است.
پس از انتقال فایل فشردهٔ بکاپ از اکانت، به سرور جدید، حالا باید آن را با استفاده از اسکریپت restorepkg روی سرور جدید بازگردانی کنید. نحوهٔ استفاده از این دستور بدین صورت است:
/scripts/restorepkg [filename|username]
به جای [filename|username] باید آدرس کامل و یا نام فایل فشردهٔ اکانت را جایگزین کنید. پس از اجرای این دستور بسته به حجم اکانت و همچنین قدرت سرور شما باید صبر کنید تا مراحل ریستور به اتمام برسد. در انتهای خط فرمان هم نباید خطایی وجود داشته باشد. اگر خطا داد، باید گزارش را کامل مطالعه کنید و ببینید که مشکل کجاست و آن را رفع کنید و مجدد تلاش نمایید.
البته به صورت گرافیگی از داخل WHM کاربر روت هم میتوانید کار ریستور را توسط بخش Transfer or Restore a cPanel Account انجام دهید. ولی شاید خط فرمان راحتتر باشد.
پس ما یاد گرفتیم که چطور میتوانیم به صورت دستی یک یا چند تا اکانت سی پنل را از روی یک سرور که لایسنس فعال ندارد، به یک سرور دیگر منتقل کنیم. حالا سرور جدید ما باید لایسنس فعال داشته باشد تا ریستور کردن بدون مشکل انجام گردد. چون باید تمامی سرویسهای مهم سرور از جمله وب سرور و دیتابیس در حال اجرا باشند. در غیر این صورت عملیات با شکست روبرو می شود.
اگر با Shell Scripting در لینوکس آشنا باشید، حتی میتوانید یک چرخه یا loop تعریف کنید که این کار را هم به صورت خودکار برای تمامی اکانتهای سرور مبدا انجام دهد و بعد از انتقال به سرور جدید ریستور را خودکار انجام دهید. اگر هم خواستید ما این کار را برای شما انجام دهیم، با توجه به میزان زمانی که باید گذاشته شود، تعیین قیمت میشود و سپس انجام وظیفه میکنیم.