Panellicense

Restore a single file from JetBackup in cPanel

Walkthrough for end users to restore an individual file or folder from a JetBackup snapshot in cPanel without touching a full account restore.

5 min readUpdated 2026-05-16jetbackup · cpanel · restore · file-backups
schema: HowToschema: FAQPage

The most common JetBackup operation is also the one that does not require admin help: pulling one file or folder out of yesterday's snapshot. cPanel users with JetBackup 5 installed can do it themselves in under a minute, without restoring the entire account, without a support ticket, and without disturbing the live site.

This guide is for end users on a cPanel account where the host runs JetBackup 5. Admin equivalents (CLI, multi-account restores) are at the bottom.

Open the snapshot browser

In cPanel, scroll to the JetBackup 5 section and click File Backups. You will see a list of snapshots, newest first, with the date, time, and size. If the list is empty, the account has no file backups yet — ask the host, who may have only configured account-level backups.

Click the date of the snapshot you want. A file browser opens, rooted at the account's home directory, showing the state of the filesystem at that moment.

Find the file

Navigate the tree the same way you would in the cPanel File Manager. Common paths:

  • public_html/ — the main website docroot.
  • public_html/wp-content/uploads/ — for WordPress media.
  • mail/<domain>/<user>/cur/ — for individual email messages (one file per message in Maildir format).
  • etc/<domain>/ — for SpamAssassin and mailbox config.

Use the breadcrumb at the top to jump back up the tree. There is no search box — if the path is long, copy it from a known-good source (a recent SSH session, a previous deploy log) and paste into the URL bar after ?path=.

Restore one file

Click the file name. Two buttons appear:

  • Download — pulls the file from the backup to your computer immediately. Use this when you want to inspect the file before deciding what to do with it.
  • Restore — writes the file back to the live filesystem.

Click Restore. JetBackup asks two questions:

  • Restore toOriginal path (default) or Alternate path. Alternate is useful when you want to compare the backed-up version side by side with the current one — restore to public_html/restored/ and diff.
  • If file existsOverwrite or Keep both. Keep both appends a timestamp to the restored file, leaving the live one untouched.

Click Restore Selected. The file is in place within seconds. Refresh the live site to confirm.

Restore multiple files at once

Tick the checkbox next to each file or folder. The Restore Selected button at the top activates with a count. The same overwrite and alternate-path options apply, but they apply to all selected items at once — there is no per-file choice.

Folders restore recursively. Tick the parent, every file inside comes back. This is how you bulk-restore an entire WordPress plugin without restoring the whole wp-content.

When self-service does not work

A few cases that fail or behave unexpectedly:

  • No File Backups section in cPanel. The host has only configured account-level backups. Ask them to enable a File Backup job, or use admin-side full account restore.
  • Snapshot exists but the file does not. The file was created after the snapshot was taken. Pick an older snapshot — counter-intuitive, but it is the file's creation date that matters, not the snapshot date.
  • Restore fails with "destination not writable". A .htaccess or open_basedir restriction is blocking the target directory. Fix permissions, retry.
  • Email restore replaces newer messages. Restoring mail/<domain>/<user>/ reverts the entire mailbox to the snapshot state. Restore individual .eml-style files from cur/ instead, or use the JetBackup Email Backups section if the host has enabled it.

For admins: CLI and bulk operations

When end users cannot self-serve (account suspended, file outside the cPanel scope), restore from the command line as root:

# List recent snapshots for an account
jetbackup5api -F listSnapshots -D '{"account": "cpuser", "type": 2}'

# Download a single file from a snapshot to a tmp path
jetbackup5api -F downloadFiles -D '{
  "snapshot_id": "abc123",
  "files": ["/home/cpuser/public_html/wp-config.php"],
  "destination": "/root/restore-tmp"
}'

type: 2 is File Backup; type: 1 is Account Backup. The snapshot ID comes from listSnapshots. Output lands in the destination path as a tarball or as the raw file, depending on selection count.

For repeated restores during an incident, script this — jetbackup5api is idempotent and fast.

Can a cPanel user restore one file without admin help?+
Yes, if the host has enabled File Backups in JetBackup 5. The cPanel user opens JetBackup 5 → File Backups, picks a snapshot, browses to the file, and clicks Restore.
Does JetBackup overwrite the existing file when I restore?+
Only if you pick the Overwrite option. Choose 'Keep both' to write the restored file with a timestamp suffix, or restore to an alternate path.
Why does my JetBackup snapshot not show the file I'm looking for?+
Pick an older snapshot. If the file was created after the snapshot was taken, it will not be there — file creation date matters, not snapshot date.
Can I restore one email message from a JetBackup snapshot?+
Yes — navigate to mail/<domain>/<user>/cur/ in File Backups and restore the individual Maildir file. Each message is one file.
Does restoring a file in JetBackup affect site uptime?+
No. The restore is a file copy from the JetBackup repository to the live filesystem; the web server keeps serving throughout. Database restores can briefly lock tables.

Next steps

Switch in an afternoon

Switch from your current reseller — free.

We migrate active cPanel, Plesk, LiteSpeed and CloudLinux licenses from any reseller. We prorate the first month so you never pay twice, and your customers see zero downtime during the swap.