Blog · WebJi® India

How to Restore a Backup in DirectAdmin

Quick answer: Restore a DirectAdmin backup from Admin Backup/Transfer: place user name.tar.gz in /home/admin/admin_backups, chown it to admin, tick the account and click Restore. The panel queues the job for dataskq. At user level, open Create/Restore Backups instead. The restore is done when the site and its database load.
✓ In business since 2005✓ INR + GST billing✓ 24/7 Email Support — avg reply < 60 min
Indian small-business owner packing courier boxes beside a laptop running his online store — restore backup in directadmin

Which DirectAdmin restore level to use

DirectAdmin restores at three levels, and the level decides which files are in scope. Pick the lowest level that covers what you lost.

LevelWhere it livesWhat it can restore
UserAdvanced Features, then Create/Restore BackupsOne account: files, databases, email, DNS, cron for that user
ResellerManage User BackupsAny user the reseller owns, from an uploaded archive
AdminAdmin Backup/TransferAny account on the server, including ones without a reseller

A restore overwrites. If the account still works and you only lost a table or a folder, take a fresh backup of the account first, download it, and only then restore.

Put the backup file where DirectAdmin can see it

An admin-level restore only lists archives that sit in the admin backup directory. Uploading through the panel puts the file there for you; uploading over SFTP usually does not.

  1. Copy the archive to the admin backup folder: cp user.bob.tar.gz /home/admin/admin_backups/
  2. Hand ownership to admin, or the restore will not see it: chown admin:admin /home/admin/admin_backups/user.bob.tar.gz
  3. Confirm the name follows the DirectAdmin pattern, user.NAME.tar.gz. A file called backup-2026.zip will not appear in the list.
  4. Check free space first: df -h /home. A restore unpacks to roughly three times the archive size.

Restore an account at user level

Log in to DirectAdmin as the account owner, not as admin. Open Advanced Features, then Create/Restore Backups. Tick files, databases, email and DNS as needed, then choose the archive from the restore list and confirm.

The page returns immediately. DirectAdmin writes a job to its task queue and the restore runs in the background, so a large account looks stalled for a minute or two. Reload the page after a couple of minutes and the archive disappears from the list when the job has been picked up.

Restore an account at admin or reseller level

At admin level, open Admin Backup/Transfer, find the archive in the restore list, tick the account and click Restore. At reseller level the same list sits under Manage User Backups, limited to the reseller's own users.

The restore is not run by the web request. DirectAdmin hands it to dataskq, the same daemon that runs scheduled backups. If the queue is stuck, run it by hand once, from a root shell:

  1. cd /usr/local/directadmin
  2. ./dataskq d800 and read the output as it works through the job.
  3. Return to Admin Backup/Transfer. The In Progress tab shows the restore with a percentage per account.

Watch the restore and confirm it worked

A progress bar at 100 percent means the archive was unpacked, not that the site works. Run these six checks before you close the ticket.

  • The home page loads over HTTPS, not just over HTTP.
  • A database-backed page works, for example a WordPress post or a product page.
  • Row counts match: SELECT COUNT(*) FROM wp_posts; against the old server.
  • Email logs in through webmail with an existing mailbox password.
  • Cron jobs are listed under Advanced Features, then Cron Jobs.
  • No new lines in error_log in public_html after one reload.

Restore only files, only MySQL, or one folder

A full restore is the wrong tool when one table is corrupt. The archive is a plain tar file, so you can look inside and take only what you need.

  1. List the contents: tar -tzf user.bob.tar.gz | head -40. User backups start with a backup/ directory holding user.conf, domains/, mysql/ and email/.
  2. Extract one folder to a scratch path: tar -xzf user.bob.tar.gz -C /root/restore backup/domains/bob.com/public_html
  3. For one database, import the dump directly: mysql -u bob -p bob_wp < /root/restore/backup/mysql/bob_wp.sql
  4. If you have only phpMyAdmin, import the same .sql file there. Set the character set to utf8mb4 before importing.
  5. Copy the files back with rsync -a /root/restore/.../public_html/ /home/bob/domains/bob.com/public_html/ and fix ownership: chown -R bob:bob /home/bob/domains/bob.com/public_html

Do not copy user.conf back on a live account. It carries limits and package settings from the old server, and DirectAdmin will overwrite the account's current limits with them.

Restore errors and what each one means

MessageWhat it meansFix
User already existsThe account was never removed, or a partial restore left it behindRestore at user level, or remove the account after taking a backup of it
Unable to read backup fileWrong path, wrong owner, or a truncated uploadMove it to /home/admin/admin_backups, chown admin:admin, compare size with the source
Permission denied on public_htmlFiles unpacked as rootchown -R user:user on the domain folder
Restore stuck at 0 percentdataskq is not running or the job queue is blocked./dataskq d800 from /usr/local/directadmin and read the output

DirectAdmin writes its own log at /var/log/directadmin/error.log and the restore detail at /var/log/directadmin/backup.log. Read the last twenty lines of both before changing anything else.

Keep a backup you can actually restore

An untested backup is a guess. Schedule the admin backup daily to a second disk or to remote storage, and once a quarter restore one account to a spare user to prove the archive works.

WebJi® backup solutions keep an off-site copy of the account, separate from the server you are restoring onto, so a disk failure does not take the backup with it. If you would rather not run tar and dataskq yourself, email support@webji.services with the account name, the archive date and what is missing. Support answers by email 24/7 in Hindi and English, and the average first reply is under 60 minutes.

For moving files between servers instead of restoring an archive, the rsync guide covers the transfer and the dry run.

Frequently Asked Questions

How do I restore a backup in DirectAdmin?

At admin level open Admin Backup/Transfer, put the user archive in /home/admin/admin_backups, chown it to admin, tick the account and click Restore. The job runs through dataskq. At user level, open Create/Restore Backups and pick the archive from the list.

Where does DirectAdmin keep backup files?

Admin-level archives are listed from /home/admin/admin_backups and reseller archives from the reseller's own backup folder. User-level backups are stored in the account's backups directory, and full system backups go to the path you set under the system backup settings.

Why does my restore show 0 percent and never finish?

The panel only queues the job. If dataskq is stopped, the queue never runs. Log in as root, cd /usr/local/directadmin and run ./dataskq d800 to process the queue by hand, then read the output and /var/log/directadmin/backup.log.

Can I restore just one database from a DirectAdmin backup?

Yes. The archive is a tar file, so list it with tar -tzf, extract backup/mysql/ and import the .sql file with mysql -u user -p database < dump.sql. That avoids overwriting files that are currently fine.

Does a DirectAdmin restore overwrite the live site?

Yes. A full account restore replaces files, databases, email and DNS for that account. Take and download a fresh backup of the working account before you restore, and use a partial tar extraction when only one table or folder is damaged.

Can WebJi® restore the account for me?

Email support@webji.services with the account name, the archive date and what is missing. If the archive is on the server, the team restores it and confirms the site and database load. Support is by email 24/7 in Hindi and English.

Need help with this?

WebJi® support does it for you — free. Talk to our Jaipur team →