Sometimes, moving website accounts from servers like Plesk, Ensim, or DirectAdmin to cPanel using the usual automated tools can hit a snag. This might be due to slow network connections or small software glitches. The good news is that manually migrating an account is straightforward.
WHY MANUAL MIGRATION?
Automated migration tools are great, but they can fail if:
The connection between your old server and the new cPanel server is unreliable, causing the migration to time out.
There are known issues with the migration scripts that haven't been fixed yet.
In these cases, a simple manual process can save the day.
THE MANUAL MIGRATION PROCESS
Manually moving an account involves four main steps:
Getting a list of accounts on your old server.
Packaging a chosen account into a single file.
Copying that packaged file to your new cPanel server.
Restoring the account on the cPanel server.
STEP-BY-STEP GUIDE
Here’s how to do it:
1. PREPARE THE SOURCE SERVER
On your old server (Plesk, Ensim, or DirectAdmin), you need two scripts: one to list accounts and one to package them.
Download the account list script:
wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/updateuserdomains-universalDownload the packaging script (choose one based on your old server type):
For Plesk:
wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-pXaFor Ensim:
wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-enXimFor DirectAdmin:
wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-da
2. MAKE SCRIPTS EXECUTABLE
After downloading, you need to give these scripts permission to run:
chmod +x updateuserdomains-universalchmod +x pkgacct-*(This command makes the specificpkgacctscript you downloaded executable).
3. GENERATE THE ACCOUNT LIST
Run the updateuserdomains-universal script to create a list of accounts:
./updateuserdomains-universal
This will create a file at /etc/trueuserdomains containing all the accounts that can be packaged.
4. PACKAGE THE ACCOUNT
Now, pick an account you want to move from the /etc/trueuserdomains file. For example, let's say the username is "alice". Run the appropriate packaging script (using pkgacct-pXa for Plesk in this example):
./pkgacct-pXa alice
This command will create a single archive file, typically named /home/cpmove-alice.tar.gz. The time this takes depends on the account's size.
Important Tip: If your
/homedirectory is full, you can specify another location for the packaged file. For example, to save it to/disk1:./pkgacct-pXa alice /disk1This would create/disk1/cpmove-alice.tar.gz.Stay Connected (Optional but Recommended): Use the
screencommand before packaging and restoring. This ensures the process continues even if your connection to the server drops. Just typescreenbefore running the packaging command.
5. COPY THE ACCOUNT TO THE NEW SERVER
You can copy the packaged account file (cpmove-alice.tar.gz) to your new cPanel server in two ways:
From the source server:
scp /home/cpmove-alice.tar.gz root@x.x.x.x:/home(Replacex.x.x.xwith your cPanel server's IP address)From the cPanel server:
cd /homescp root@x.x.x.x:/home/cpmove-alice.tar.gz .(Again, replacex.x.x.xwith the source server's IP address)
6. RESTORE THE ACCOUNT ON THE CPANEL SERVER
Once the file is on your new cPanel server, navigate to the /home directory and restore the account. Remember to use screen here too if you chose to earlier.
cd /home/scripts/restorepkg cpmove-alice.tar.gz
After a successful restore, you can delete the cpmove-alice.tar.gz file from /home to free up space.