You set up WHM backups months ago and assumed everything was running fine. Then a server crash happens — and you discover your backups have been silently failing the entire time. This is one of the most common and costly mistakes in cPanel server management.
In this guide, we'll walk through every reason why cPanel/WHM scheduled backups stop running and exactly how to fix each one.
💡 None of these worked? Skip the guesswork.
Get Expert Help →Step 1: Verify Backups Are Actually Enabled in WHM
The most common reason backups "don't run" is simply that they were never fully enabled.
1. Log in to WHM as root or a reseller with backup permissions.
2. Navigate to Backup Configuration: go to Home > Backup > Backup Configuration.
3. Check the Backup Status section: ensure the Enable Backups checkbox is ticked. If it's unchecked, backups are completely disabled regardless of your schedule settings.
4. Scroll to the Backup Scheduling section: confirm days and times are set. A common gotcha — selecting "Daily" but leaving all day checkboxes unchecked means no backups run.
5. Click Save Configuration after making any changes.
Step 2: Check the WHM Backup Logs for Error Details
cPanel writes detailed logs for every backup attempt. This is your first diagnostic stop.
1. SSH into your server as root and check the backup log directory:
ls -lt /usr/local/cpanel/logs/cpbackup/ | head -20
2. Open the most recent log:
cat /usr/local/cpanel/logs/cpbackup/$(ls -t /usr/local/cpanel/logs/cpbackup/ | head -1)
3. Grep for errors:
grep -i "error\|fail\|warn\|abort" /usr/local/cpanel/logs/cpbackup/*.log | tail -50
Common error strings to look for:
Disk is full— backup destination ran out of spaceConnection refused— remote backup destination unreachablemysqldump: Error— database dump failedBackup aborted— backup cancelled due to low disk space thresholdTimeout— backup took longer than configured timeout
You can also check backup status per account in WHM under Backup > Backup Status.
Step 3: Fix Disk Space Issues Preventing Backups
WHM has a built-in safety check — if free disk space falls below the configured threshold (default 5%), it aborts backup runs to prevent the server from filling up completely.
1. Check current disk usage:
df -h /
2. Find large files consuming space:
du -sh /home/* | sort -rh | head -20
du -sh /usr/local/cpanel/logs/* | sort -rh | head -10
3. Clean up old backup files:
ls -lh /backup/
# Remove old compressed backups manually if needed
find /backup/ -name "*.tar.gz" -mtime +14 -delete
4. Adjust the disk space threshold in WHM: In Backup Configuration, under the Backup Disk Space section, lower the minimum free space percentage, or switch to a remote backup destination to avoid filling local disk.
5. Compress old cPanel logs:
gzip /usr/local/cpanel/logs/error_log
gzip /var/log/exim_mainlog
Step 4: Fix the cPanel Backup Cron Scheduler
cPanel's backup system uses its own internal scheduler (not the standard system cron). If the cpbackup service is broken, backups won't run even with a correct WHM configuration.
1. Verify the cpbackup process is running:
ps aux | grep cpbackup
2. Check if the cPanel task queue is stuck:
/usr/local/cpanel/bin/servers_queue run --verbose
3. Manually trigger a backup run to test:
/usr/local/cpanel/bin/cpbackup --verbose
4. Restart the cPanel service if the scheduler appears stuck:
service cpanel restart
# or
/usr/local/cpanel/scripts/restartsrv_cpaneld
5. Verify the cPanel cron entries:
crontab -l | grep -i backup
cat /etc/cron.d/cpanel
If the backup cron entry is missing, reinstall cPanel cron jobs:
/usr/local/cpanel/scripts/rebuildhttpdconf
/usr/local/cpanel/scripts/upcp --force
Step 5: Fix Remote Backup Destination Connection Failures
If you've configured backups to go to an FTP, SFTP, S3, or Google Drive destination and they're not completing, the remote connection is likely failing.
1. Test the connection from WHM: Go to Backup Configuration > Additional Destinations, click the destination name, and click Validate Destination.
2. Test FTP connectivity manually:
ftp your-backup-server.com
# or for SFTP:
sftp user@your-backup-server.com
3. Check for firewall blocks:
# FTP
telnet your-backup-server.com 21
# SFTP
telnet your-backup-server.com 22
4. Verify credentials haven't expired: Remote backup passwords, SSH keys, and API tokens can expire or be rotated. Update credentials in WHM's Additional Destinations tab.
5. For S3 bucket issues: verify your IAM policy includes s3:PutObject, s3:GetObject, and s3:ListBucket permissions for the backup bucket.
Step 6: Fix MySQL/MariaDB Database Dump Failures
WHM backups include MySQL database dumps. If mysqldump fails for any account, the entire backup for that account may be marked as failed.
1. Check for MySQL errors in the backup log:
grep -i "mysql\|dump\|database" /usr/local/cpanel/logs/cpbackup/*.log
2. Test mysqldump manually:
mysqldump --single-transaction --all-databases > /tmp/test_dump.sql
echo "Exit code: $?"
3. Fix MySQL user permissions if mysqldump fails with access denied:
mysql -u root -e "SHOW GRANTS FOR 'cpbackup'@'localhost';"
mysql -u root -e "GRANT SELECT, LOCK TABLES, SHOW VIEW ON *.* TO 'cpbackup'@'localhost';"
mysql -u root -e "FLUSH PRIVILEGES;"
4. Check for corrupted tables:
mysqlcheck --all-databases --auto-repair -u root -p
Step 7: Fix Backup Timeout Errors
Large hosting accounts with gigabytes of data can cause backup jobs to exceed WHM's default timeout of 2 hours, causing them to abort mid-run.
1. Increase the backup timeout in WHM: In Backup Configuration, locate the Timeout field and increase it. For large servers, 14400 seconds (4 hours) or 21600 (6 hours) is appropriate.
2. Enable incremental backups to reduce backup time after the initial full backup:
In WHM Backup Configuration, set Backup Type to Incremental instead of Compressed. Incremental backups only copy changed files, dramatically reducing backup time on subsequent runs.
3. Exclude large unnecessary directories: In the Configure Backup Additional Destinations, you can exclude directories like public_html/wp-content/cache or large log directories from backups.
4. Stagger large accounts: WHM backs up accounts sequentially. If you have one account with 50GB+ of data, consider moving it to a dedicated backup window.
How to Enable Backup Email Notifications in WHM
The best way to catch backup failures before they become disasters is to configure email notifications.
1. In WHM, go to Backup Configuration.
2. In the Backup Notification section, enter the admin email address.
3. Set notification to trigger on failures (or all runs for full visibility).
4. Save the configuration.
WHM will now email you whenever a backup run encounters an error — so you stop finding out about failures during a disaster recovery event.
Verify Your Backups Are Actually Restorable
A backup that exists but can't be restored is no backup at all. Once your backups are running again, test a restore on a non-critical account:
# List available backups for an account
ls -lh /backup/cpbackup/daily/username/
# Test restore in WHM: Home > Backup > Restore a Full Backup/cpmove File
Verify the restored account's files, databases, and email are intact. Do this quarterly — automated backups fail silently more often than you'd expect. If managing backup health across multiple servers is consuming your team's time, CloudHouse's managed server management service includes proactive backup monitoring, failure alerts, and restore testing as part of the standard package.
