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:
Migrating accounts manually is a surprisingly simple task. All that needs to be done are the following:
1. On the source server (e.g., Plesk, Ensim, or DirectAdmin), download the script that builds the list of accounts at /etc/trueuserdomains:
and the script that packages the accounts (choose one):
Plesk
Ensim
DirectAdmin
2. Make them both executable:
3. Execute updateuserdomains-universal:
Now there should be a plain text file at /etc/trueuserdomains that contains a list of accounts that can be packaged.
4. 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):
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:
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
5. Copy the archive to the new server by running this from the source server:
or, run this from the cPanel server:
6. On the cPanel server, after running "screen" (if you choose to use screen), run these commands to restore the account:
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.
If anyone has any questions, please feel free to let us know.
Don't forget that cPanel has a migrations team that can do all of this for you - for completely free! See my signature below to open a ticket on our helpdesk or head over to Migrate to cPanel | cPanel, Inc. and we can schedule a migration for you.
Thanks!
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
1. 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
Plesk
Code:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-pXa
Code:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-enXim
Code:
# wget http://httpupdate.cpanel.net/cpanelsync/transfers_DEVEL/pkgacct/pkgacct-da
2. Make them both executable:
Code:
# chmod +x updateuserdomains-universal
# chmod +x pkgacct-*
Code:
# ./updateuserdomains-universal
4. 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
/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
/disk1/cpmove-alice.tar.gz
5. Copy the archive to the new server by running this from the source server:
Code:
# scp /home/cpmove-alice.tar.gz [email protected]:/home
Code:
# cd /home
# scp [email protected]:/home/cpmove-alice.tar.gz .
Code:
# cd /home
# /scripts/restorepkg cpmove-alice.tar.gz
If anyone has any questions, please feel free to let us know.
Don't forget that cPanel has a migrations team that can do all of this for you - for completely free! See my signature below to open a ticket on our helpdesk or head over to Migrate to cPanel | cPanel, Inc. and we can schedule a migration for you.
Thanks!