Plesk Backup Manager creates full or per-subscription backups of your sites, databases and mail, runs them on a schedule, and restores a domain when a deployment or update goes wrong. This guide walks you through configuring the backup storage, scheduling backups, pulling a copy off the server, and restoring a single subscription without touching the rest of the panel.
The steps assume Plesk is already installed and you can log in as the server administrator. If Plesk is not set up yet, start with how to install Plesk on a Linux VPS and come back here.
Before you start
You need:
- Administrator access to Plesk (the
adminaccount, or a user in the Administrators group). - Root SSH access to the VPS, so you can check disk space and copy backup files out.
- Enough free disk space for at least two backup generations. A full server backup is roughly the size of your subscriptions' files plus databases plus mail, and Plesk writes the archive before moving it to the target storage.
- A decision on where backups should live: the server itself, an FTP/SFTP storage, or cloud storage supported by the extension in your Plesk version.
Check free space before anything else:
df -h /var/lib/psa
du -sh /var/www/vhosts 2>/dev/nullWarning: A backup stored only on the same VPS protects you from a bad update, not from a lost server. Always keep a copy on separate storage.
Configure backup settings
- Log in to Plesk and go to Tools & Settings > Backup Manager (on some versions it is under Tools & Settings > Backup & Restore).
- Open Settings (or Backup Settings) in the toolbar.
- Set the backup storage location. If you select a remote storage, fill in the FTP/SFTP host, path, credentials, and keep the retention you want. Credentials for remote storage are stored by Plesk, so use a dedicated backup account rather than a personal one.
- Choose whether configuration files, mail, and databases are included. For a hosting restore you normally want all three.
- Decide on compression. Compressed archives are smaller but use more CPU during the backup window; if your VPS has limited CPU, schedule backups outside peak traffic.
- Save the settings.
If your plan is to keep a second copy with your own tooling, note the local path Plesk writes to:
ls -lh /var/lib/psa/dumps/
ls -lh /var/lib/psa/dumps/domains/Full-server backups land in /var/lib/psa/dumps, per-domain archives under /var/lib/psa/dumps/domains/<domain>. Treat anything here as readable by root only.
Run a manual backup first
Never schedule something you have not run once by hand.
- In Backup Manager, click Backup Up (or Back Up Now).
- Choose Full for a whole-server backup or Incremental if you already have a full one and your storage supports it.
- Select the scope: all configuration, or a specific subscription when you only need one site.
- Give it a recognisable name, for example
pre-upgrade-2026-01-01. - Start the backup and watch the task in the progress panel until it reports success.
You can also drive it from the command line as root. Plesk ships a CLI utility; confirm the exact flags for your version before scripting it:
plesk bin backup_manager --help
plesk bin backup_manager --create-backupTip: For unattended jobs, always run --help first and copy the flag names from the output. Plesk CLI options differ between versions, and a wrong flag can silently create a partial archive.
Schedule backups in Plesk Backup Manager
- Open Backup Manager and click Schedule (or Schedule Backup Settings).
- Tick Activate this backup task.
- Choose the frequency: daily, weekly, or monthly, and pick a start time in the server's timezone. Check the timezone under Tools & Settings > Server Settings, because a backup at "02:00" is 02:00 server time.
- Set the backup type and scope — typically a weekly full backup with daily incrementals, or a daily full backup if your data set is small.
- Set retention: how many backups to keep. Keeping more backups than you have disk for is the most common cause of failed jobs.
- Choose whether to store the backup in the backup storage, and whether notify the administrator by email on failure.
- Save the task. It appears under Tools & Settings > Scheduled Tasks as a Plesk-managed entry.
For a second, independent copy, add your own cron job that copies the newest archive to remote storage. See schedule tasks with cron on Linux for the format:
# /etc/cron.d/plesk-dumps-offsite
30 4 * * * root rsync -a --delete /var/lib/psa/dumps/ backup@203.0.113.10:/srv/backups/plesk/ >> /var/log/plesk-offsite.log 2>&1Keep the cron time well after the Plesk backup window finishes, and check that the destination has room before you enable the job.
Restore a domain or subscription
- Go to Backup Manager and find the archive you want.
- Click Restore next to it.
- Choose Selected objects rather than a full restore — a per-domain restore is safer when only one site broke.
- Select the subscription or domain, and decide what to restore: files, databases, mail, DNS, or configuration.
- Pick the restore option:
- Restore to the original location if you are fixing a broken site.
- Restore to a new location or a different subscription if you want to inspect content before overwriting anything.
- Start the restore and wait for the task to finish. Large mailboxes take time.
Warning: Restoring files or databases over a live site overwrites current content, including uploads made after the backup date. Take a fresh backup immediately before any restore, and consider putting the site into maintenance mode.
After the restore, check ownership and permissions, because files restored from an archive can come back with the wrong user if the subscription's system user was recreated:
ls -l /var/www/vhosts/example.com/httpdocs
plesk repair fs example.com -yplesk repair fs verifies the file system and permissions for a subscription and is the quickest fix for the classic "site restored but cannot write uploads" problem.
Check it works
Confirm the backup is real, not just listed:
- Open Backup Manager and check the archive's date, size, and status. A size of a few kilobytes on a live site means the job failed partway.
- Download one archive through the panel and open it locally. A valid full backup contains a
dump.xmlplus the domain directories. - Restore a small test file or a test database to a staging subscription and verify the content.
- Check the log for warnings:
tail -n 50 /var/log/plesk/PMM/backup.log
grep -i -E "error|warning" /var/log/plesk/PMM/restore.log | tail -n 20- Confirm the off-site copy arrived with a matching size:
ssh backup@203.0.113.10 'ls -lh /srv/backups/plesk/'Troubleshooting
- Backup task fails with a disk space error. The archive is written to
/var/lib/psa/dumpsbefore transfer, so you need free space equal to roughly the archive size. Free space withdf -h, lower retention, or point the storage somewhere with room. - Scheduled task exists but no new archives appear. The task is deactivated, the server timezone made the window ambiguous, or the panel's task scheduler is not running. Re-check the schedule entry and confirm the timezone under Server Settings.
- Restore finishes but the site shows a database error. The database was excluded from the backup scope, or the credentials changed after the backup date. Restore the database objects again and verify the connection settings in the site's configuration file.
- Restored files are owned by root or the wrong user. Permissions were not restored with the archive. Run
plesk repair fs example.com -yfor the affected subscription and re-test uploads. - Remote storage upload fails with authentication or timeout errors. The remote account password changed, the storage path does not exist, or the connection is blocked. Test the same credentials with
sftporlftpfrom the VPS, then update the settings in Backup Manager.
Next steps
- Review Plesk: create a domain, subscription and service plan so new sites land in a consistent structure that is easy to back up and restore.
- Add database-level dumps alongside Plesk archives with automating MySQL backups with mysqldump and cron.
- Learn the restore path for a single database in how to back up and restore MySQL databases with mysqldump.
