(Home >> Transfers >> Transfer Tool)


This feature allows you to copy multiple accounts from a remote server to your cPanel & WHM server. In order to transfer accounts, you will need SSH access to the remote server and be able to obtain root privileges with either su or sudo.

  • The Transfer Tool requires MySQL® or a MySQL-compatible database on the target server to function properly. (For example, Percona or MariaDB) 
  • If you experience problems with session timeouts, increase the number of seconds in the Number of seconds an SSH connection related to an account transfer may be inactive before timing out setting in the System section of the Tweak Settings interface.
  • The transfer system uses multiple applications, such as MySQL. Do not shut down or restart any processes on either server during the transfer and restore process.
  • The Transfer Tool feature does not transfer DNS zone templates. If custom DNS zone templates exist on the source server, the system ignores these zone templates when it recreates the account on the destination server.

Important note about account transfers from Plesk

If you plan to transfer accounts from Plesk, you should first change any forwarded domains to physical hosting accounts. To do this, run the following command as root from the command line:

./domain --update example.com -hst_type phys -login "example" -hosting true -ip -passwd "examplepass" 

In this example:

If you need to convert several forwarding domains into hosting accounts, open a ticket in our system and our migration team will contact you.

How to transfer and restore multiple accounts

Remote server information

This section of the Transfer Tool interface is where you will specify information about the server from which accounts will be transferred.

  1. Specify the Remote Server Address. This value can be in the form of an IP address or a Fully Qualified Domain Name (FQDN).
  2. Specify the Remote SSH port you wish to use.

    The default value for SSH is port 22.


This section of the Transfer Tool interface is where you will specify the authentication method to use to log into the remote server.

  1. Select whether to log in as root or with a specific username.

    If PermitRootLogin=No in sshd_config on the remote server, you must log in as a user other than root and then escalate to root.


  2. Select the Authentication Method that you wish to use. Here, you must specify whether you wish to use a password or an SSH Public Key to authenticate to the remote server.
  3. If you selected User under Login, select a Root Escalation Method.



This area of the Transfer Tool interface is where you can select advanced options for the transfer. Click Show to display the list of options.

  1. Specify the Remote Server Type. From the menu, select the web control panel that the remote server runs. You have the following options:
  2. Select Unencrypted to use an unencrypted session to transfer the files.

  3. Select Compressed Transfers to compress the files before the remote server transfers them.
  4. Select Low Priority to use less CPU and IO on the remote server. This will reduce the impact to performance on the remote server, but increase the duration of the transfer session.
  5. Select Use Incremental Backups speed-up to decrease the amount of time it takes to package the account on the source server. If a daily incremental backup is available, WHM will use that backup as a starting point. The system will then update the package before it is transferred.

  6. Select Use FTP to Transfer if you would like to use FTP to complete the transfer.

  7. Select Use custom account packaging modules from /var/cpanel/lib/Whostmgr/Pkgacct to use packaging scripts located in that directory.

    Custom restore modules located in /var/cpanel/perl/Whostmgr/Transfers/Systems will always be preferred over the cPanel-provided modules in /usr/local/cpanel/Whostmgr/Transfers/Systems.

  8. Enter the number of transfer threads that you wish to use in the Number of Transfer Threads text box.
    Enter the number of restore threads that you wish to use in the Number of Restore Threads text box.  

Fetch account list

After you make your selections, click Fetch Account List to proceed to the next page.

The Account List interface

When you click the the Fetch Account List button, a new interface will appear.

The top of the interface displays the hosting software and version of the remote server. If this information is incorrect, click Reanalyze Remote Server.

Below the remote server information, the interface will display if there are no available IP addresses.

If there are no available IP addresses on the target server, accounts on the remote server that have a dedicated IP address on the remote server will not transfer. 

The next section is the Packages section. From here, you can select which packages on the remote server you wish to copy to your local server.

The last section of the Account List interface is the Accounts section. This section allows you to search for and select accounts that you wish to transfer to your local server.

How to copy packages

You can copy packages from a remote server if you choose to do so.

The Transfer Tool feature will transfer any features lists that are associated with the packages that you select.

To copy a package:

  1. Select the packages that you wish to copy in the table under the Packages heading.
  2. Click Copy.

The restore system will attempt to extract the package information from the cpmove file. If the package does not already exist on the target system, the system will create the package and assign it to the account. If the system cannot create the package, the system will assign the default package to the account.

If the feature list that is associated with the account exists on the target system, the system will assign it to the account. If the feature list does not exist, the system will assign the default feature list to the account.


How to copy accounts

To toggle an option for all accounts, click the checkbox at the top of the appropriate column in the table header.

To copy accounts:

  1. Select the accounts that you wish to copy in the table under the Accounts heading.
  2. You can specify the username that the copied account will use on the new server. Enter the new username in the User text box.

    The User text boxes use the following colors as warning indicators:

    • Red means that the username exists on this server, and the account will fail to copy if you do not change the username or select Overwrite.
    • Yellow means that the account has a dedicated IP address on the remote server. 
    • Green means that the account does not already exist.
  3. Select the accounts that should be given dedicated IP addresses under the Dedicated IP Address heading.
  4. Select the accounts that should transfer their home directories under the Copy Home Directory heading.
  5. Select the accounts that should retain their reseller privileges under the Copy Reseller Privileges heading.

  6. Select the accounts that should transfer their account databases under the Copy Databases heading.
  7. Select the accounts that should transfer their bandwidth data under the Copy Bandwidth Data heading 
  8. Select accounts for express transfer under the Express transfer heading.
  9. If an account exists on the server, the Overwrite Account column will contain a checkbox that allows you to transfer the account and overwrite all the data in the account.  
  10. Click Copy to finish.

After you click Copy, the  Account Transfer interface will appear.

About express transfer

An express transfer performs the following actions on the remote server:

  1. Updates the account's A record to point to the destination server.
  2. Whenever appropriate, changes the domain's nameserver entry to point to the destination server.
  3. Updates the email routing configuration, so mail arrives at the destination server.
  4. Adds a redirect for the Account Moved page (cgi-sys/movingpage.cgi) for the following file extensions:
  5. Blocks SSH and FTP logins to the source server for accounts that were transferred.

Changes are handled on the source server in the /usr/local/cpanel/scripts/xferpoint directory.