Note: the examples in this guide use the root account for logging into via scp.

This is for demonstration purposes only.

Logging in as root is a poor security practice. You should use an unprivileged account when copying data between 2 servers instead of using the root account.

Typically accounts are migrated from Plesk, Ensim, or DirectAdmin by using WHM >> Copy an Account From Another Server (or Copy Multiple Accounts/Packages From Another Server).

There are times when this may not work. For example:

• Network connectivity between the source and destination servers may be poor, causing the migrations scripts to timeout

• There may be outstanding bugs in the migrations scripts which can only be resolved by migrating manually

Migrating accounts manually is a surprisingly simple task. All that needs to be done are the following:

• Populate /etc/trueuserdomains on the source server

• Package an account of your choice into a single file

• Copy the packaged account to the cPanel server

• Restore the account on the cPanel server

On the source server (e.g., Plesk, Ensim, or DirectAdmin), download the script that builds the list of accounts at /etc/trueuserdomains:


# wget

and the script that packages the accounts (choose one):



# wget



# wget



# wget

Make them both executable:


# chmod +x updateuserdomains-universal # chmod +x pkgacct-*

Execute updateuserdomains-universal:


# ./updateuserdomains-universal

Now there should be a plain text file at /etc/trueuserdomains that contains a list of accounts that can be packaged.

To package an account, select a user from /etc/trueuserdomains (we’ll use “alice” in the example below), and run the pkgacct file that you downloaded in the previous steps (we’ll use ‘pkgacct-pXa’ for Plesk from this point forward. If you are using Ensim, you would execute pkgacct-enXim, and if you are using DirectAdmin, you would use pkgacct-da):


# ./pkgacct-pXa alice

This will package the entire account to a single file here:


The amount of time that this process takes will depend on the size of the account. I would strongly advise running the “screen” command before packaging (and restoring) accounts. This will allow the package/restore processes to continue even if you get disconnected from the server.

Also, if the /home directory is too small, you can specify which partition to use like this:


# ./pkgacct-pXa alice /disk1

where “/disk1” is only an example, and likely does not exist on your server. If it did, and if you ran that command, then you would end up with a file here:


Copy the archive to the new server by running this from the source server:


# scp /home/cpmove-alice.tar.gz [email protected]:/home

or, run this from the cPanel server:


# cd /home # scp [email protected]:/home/cpmove-alice.tar.gz .

On the cPanel server, after running “screen” (if you choose to use screen), run these commands to restore the account:


# cd /home # /scripts/restorepkg cpmove-alice.tar.gz

Note that you can remove the /home/cpmove-${USER}.tar.gz files as soon as you are done with them if you’d like. This can help to free up some space on the /home partition.

Did this answer your question?