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:
Code:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/updateuserdomains-universal
and the script that packages the accounts (choose one):
Plesk
Code:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-pXa
Ensim
Code:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-enXim
DirectAdmin
Code:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-da
Make them both executable:
Code:# chmod +x updateuserdomains-universal # chmod +x pkgacct-*
Execute updateuserdomains-universal:
Code:# ./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):
Code:# ./pkgacct-pXa alice
This will package the entire account to a single file here:
/home/cpmove-alice.tar.gz
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:
Code:# ./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:/disk1/cpmove-alice.tar.gz
Copy the archive to the new server by running this from the source server:
Code:# scp /home/cpmove-alice.tar.gz root@x.x.x.x:/home
or, run this from the cPanel server:
Code:# cd /home # scp root@x.x.x.x:/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:
Code:# 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.