How to Restore a cPanel/WHM Full Account Backup (Step-by-Step Guide 2026)

Priya

Content Writer & Researcher

Last Updated: 4 September 2026
How to Restore a cPanel/WHM Full Account Backup (Step-by-Step Guide 2026)
🖥️

Need Expert Help Restoring Your cPanel Account Backup?

A failed restore can cost hours of downtime. CloudHouse's server experts handle cPanel full account recoveries, database restores, and emergency site recoveries — fast. Get help before data is permanently lost.

🖥️12,400+PCs Fixed
⭐4.9★Google Rating
⚡<15 minAvg. Response
🛡️ISO 27001Certified

If you've ever needed to recover a hacked website, move an account to a new server, or roll back after a botched update, knowing how to restore a cPanel/WHM full account backup is one of the most critical skills a server administrator can have. A restore that goes wrong — or silently fails — can mean hours of downtime and lost data.

This guide walks you through every method to restore a full cPanel account backup using WHM, the command line, and partial-restore options, along with the verification steps most tutorials skip.

What Is a Full cPanel Account Backup?

A full cPanel account backup (also called a cpmove file) is a compressed archive that contains everything associated with a hosting account:

  • All website files in public_html and addon domain directories
  • MySQL/MariaDB databases and database users
  • Email accounts, mail filters, and autoresponders
  • DNS zones and subdomains
  • Cron jobs and SSL certificates
  • Account configuration and package settings

Full backups are stored as cpmove-username.tar.gz or backup-MM.DD.YYYY_HH-MM-SS_username.tar.gz files. Only a server administrator with WHM or root SSH access can restore them.

💡 None of these worked? Skip the guesswork.

Get Expert Help →

Method 1: Restore via WHM Interface (Recommended)

The WHM graphical interface is the safest and most straightforward way to restore a full account backup.

1Upload the backup file to the server

Before restoring, upload your cpmove file to the server. The recommended destination is /home:

scp backup-01.01.2026_00-00-00_username.tar.gz root@yourserver.com:/home/

Alternatively, use WHM's File Manager or an SFTP client. Ensure you have enough free disk space — the restored account will require at least 2–3× the compressed backup size.

2Log in to WHM

Navigate to https://your-server-ip:2087 and log in with your root or reseller credentials.

3Navigate to Restore

In the WHM search bar, type Restore and click Restore a Full Backup/cpmove File. This option is under the Backup section in the left sidebar.

4Select the backup file

WHM automatically scans /home, /root, and /tmp for valid cpmove files. Select your file from the dropdown list. If it doesn't appear, verify the file is in one of those directories and that it's readable by root.

5Configure restore options
  • Overwrite existing account — enable only if you're replacing an account with the same username; leave disabled for a clean restore to a new server
  • IP assignment — choose shared IP unless the account had a dedicated IP on the source server
  • Restricted Restore — recommended; performs extra security checks and skips any component with a security risk
6Click Restore and monitor the log

WHM displays a live log showing each restore step: account creation, file extraction, database import, email account recreation, DNS zone setup, and SSL application. A successful restore ends with: Restore Complete.

1SSH into the server as root
ssh root@your-server-ip
2Place the backup file in /home
mv /path/to/backup-username.tar.gz /home/
3Run the restore script
/scripts/restorepkg /home/backup-username.tar.gz

For an account that already exists and needs to be overwritten:

/scripts/restorepkg --force /home/backup-username.tar.gz

The script outputs the full restore log to your terminal. Watch for any ERROR or WARNING lines — these indicate partial failures that need manual attention.

4Run fix permissions after restore
/scripts/upcp --force
/scripts/fixperms username

Method 3: Partial Restore (Specific Files or Databases)

Sometimes you only need to recover a specific database or a folder of files — restoring the entire account would overwrite newer changes. Use these targeted methods instead.

Restore Files Only

Extract just the file content from the backup:

tar -xzf backup-username.tar.gz homedir/public_html -C /tmp/
cp -r /tmp/homedir/public_html/* /home/username/public_html/

Restore a Specific Database

Extract and import the database from the backup archive:

# Extract the database dump
tar -xzf backup-username.tar.gz mysql/databasename.sql -C /tmp/

# Import to MySQL
mysql -u root -p username_databasename < /tmp/mysql/databasename.sql

Restore Email Accounts

Email mailboxes are stored under mail/ in the backup archive:

tar -xzf backup-username.tar.gz mail/ -C /tmp/
cp -r /tmp/mail/ /home/username/

Common Restore Errors and How to Fix Them

Error: "Account already exists" on Overwrite Restore

If you see this without the overwrite option enabled, WHM has detected an existing account with the same username. Either enable Overwrite existing account in WHM, or use --force with /scripts/restorepkg. If you want to keep the existing account, rename the username first: WHM → Modify an Account → Change Username.

Error: "Disk quota exceeded"

The account package on the destination server has a lower disk quota than the backup's content. Fix by temporarily increasing the package quota in WHM (Edit a Package), then restore, and adjust afterwards.

Database Import Fails: "ERROR 1044: Access denied"

This happens when the MySQL user for the database wasn't recreated properly. Manually create the user and grant privileges:

mysql -u root -p
CREATE USER 'username_dbuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON username_database.* TO 'username_dbuser'@'localhost';
FLUSH PRIVILEGES;

Error: "Could not find the backup file"

WHM only scans /home, /root, and /tmp. Move your backup to one of these directories. Also check file permissions — the file must be readable by root (chmod 644 backup-file.tar.gz).

Restore Completes But Website Shows 500 Error

File permissions are usually the culprit. Run:

/scripts/fixperms username

If the error persists, check the PHP error log at /home/username/public_html/error_log and verify the database credentials in the site's config file (wp-config.php, .env, etc.) match the restored database name and user.

Verify the Restore Was Successful

Never assume a restore succeeded just because no errors were shown. Run these checks:

1. Verify files exist

ls /home/username/public_html/

2. Verify databases were imported

mysql -u root -p -e "SHOW DATABASES;" | grep username

3. Verify email accounts

ls /home/username/mail/

4. Verify DNS zone

cat /var/named/domain.com.db

5. Load the site in a browser using the server's temporary URL or by modifying your local /etc/hosts file to bypass DNS.

Best Practices for cPanel Backup Restores

  • Always verify free disk space before restoring — run df -h to check; aim for at least 3× the backup size free
  • Use Restricted Restore for untrusted backup files — this prevents malicious scripts embedded in backup archives from executing
  • Run a post-restore fix-permissions pass — /scripts/fixperms username prevents 403/500 errors from incorrect ownership
  • Document your restore — note the date, backup source, and any components that required manual intervention
  • Test restores in a staging environment first when restoring to a live production server

For complex restore situations, hardware failures, or environments where backup files are corrupted, CloudHouse's team provides hands-on cPanel server management and emergency recovery support to get your sites back online fast.

FAQs

Get the Free Linux Server Admin Cheatsheet (PDF)

Essential commands for server management, networking, and troubleshooting — all on one printable page.

Running Linux servers? Let us manage them for you.

Our Managed Linux Server plans cover updates, security hardening, monitoring, and 24/7 incident response — so your servers stay up and your team stays focused.

  • Proactive OS patching and security updates
  • 24×7 monitoring with instant alerting
  • Backup configuration and disaster recovery
  • Dedicated Linux engineers on call
See Pricing Plans →

What our customers say

“Our production server went down at 2 AM. CloudHouse had it back online in under 20 minutes. Incredible response time.”

Arun S.

CTO, SaaS Startup

“They migrated our entire infrastructure from Ubuntu 18 to 22 with zero downtime. Couldn't have asked for better.”

Deepak N.

DevOps Lead

Frequently Asked Questions

Log in to WHM, go to Backup > Restore a Full Backup/cpmove File, upload your backup to /home on the server, select it from the dropdown, configure overwrite and IP options, and click Restore. WHM displays a live log and ends with 'Restore Complete' on success.

Need this done for you?

Server Management Service

Managed Linux and Windows servers: monitoring, patching, security and 24/7 support.

Learn more

Book your free 15-minute diagnosis

A certified technician will call you back within 15 minutes during business hours.

Share this article

Leave a Comment

Comments (0)

Loading comments...