The customer has a cPanel backup and needs the account back. The admin needs to be sure that restoring from the panel gives the same result as the command line. When an admin restores a standard cPanel backup through Salvo, from the panel or the command line, does the account come back whole? Does the result depend on where the restore was started? And what does the server feel while it runs?
Why it matters to whoever runs the server
- 4 out of 4 restores with the same content: the result doesn’t depend on who restored or from where. The on-call tech and the senior admin end up in the same place.
- 100% of the 23,174 messages identical byte for byte: no customer message goes missing in the restore.
| Command line | Panel | |
|---|---|---|
| Restore time | 1 min 01 s | 54 s |
| Domains (backup → restored) | 2 → 2 | 2 → 2 |
| Mailboxes | 14 → 14 | 14 → 14 |
| Messages | 23,174 → 23,174 | 23,174 → 23,174 |
| Account files | 26,109 → 26,123 | 26,109 → 26,123 |
| Peak server CPU | 75% | 76% |
| Peak disk writes | 396 MB/s | 385 MB/s |
Method
One real email and website account: about 2.1 GB, 26 thousand files, 2 domains and 14 mailboxes with 23 thousand messages, no database.
The backup is the standard file the panel itself creates, made on the source server and taken to another server that already serves websites and email.
Four restores, deleting the account before the next one: two from the command line and two from the Salvo panel in WHM, clicking as an admin would.
After each one, the restored account was compared file by file (size and hash) with the original, separating customer files (website, uploaded files and messages) from those the system recreates on its own (mail server indexes, panel caches, logs and temporary files). Customer files: 23,238 of 23,272 identical byte for byte (99.85%). The 34 that differ: 19 emails that reached the original account after the backup, so they were not in it, and 15 files the new server adjusts on restore (the PHP version in .htaccess, php.ini and .user.ini, and the webmail database converted by the panel).
During the restore, Salvo measured the server every 2 seconds (CPU, load, disk reads and writes, disk usage and inodes) and, at the end, showed side by side what was in the backup and what came back. Every restore stays in the history, with the full log.
What we decided
On the first restore from the panel, the log came out with extra lines compared with the command line, because the process inherited the web page’s environment. Salvo now always restores with the same environment, wherever it’s started from, and the two ways became identical, line by line. A pre-restore check that points out what the destination server lacks and the account used is planned.