Skip to content
9MinecraftServer.com home Search servers
EN

Translate this page

Sign up free
Run your server

Minecraft server backup: a plan that survives a bad day

A backup you have never restored is a guess. Keep three copies on two kinds of storage with one off-site, automate it, and restore from it once a month on purpose.

For server ownersUpdated 9 min read

Quick answer
  • 3-2-1: three copies, on two different kinds of storage, one of them off the machine that runs the server.
  • Copying a world while the server writes to it corrupts chunks. Wrap every backup in save-off, save-all flush, copy, save-on.
  • DriveBackupV2 (updated January 2026) covers Paper servers; on Fabric the choices are thinner, so a script is the honest answer.
  • Off-site storage is cheap: Backblaze B2 lists $6.95 per TB per month and Cloudflare R2 $0.015 per GB, both with a free 10 GB.

A Minecraft server backup has to do one thing: give you back a working world, with player data and plugin configs, after the disk dies, a plugin corrupts a region file, a staff member runs //set air on spawn, or the host closes your account. Most owners have "a backup" that is one zip on the same disk as the server, made by hand three weeks ago. That covers the staff mistake and nothing else.

The fix is not a specific plugin. It is a plan (three copies, two media, one off-site), a way of copying that does not corrupt chunks, a retention rule so the disk does not fill, and a restore you have actually done. This guide gives you each of those, with the currently maintained tools and what off-site storage really costs.

The 3-2-1 rule, translated for a Minecraft server

3 copies

The live server, a local backup on the same machine for fast rollbacks, and a remote backup for disasters. The local copy is what you restore from when a player griefs spawn; the remote copy is what you restore from when the machine is gone.

2 kinds of storage

The server's disk and something that is not the server's disk: object storage, a cloud drive, a second VPS, your home PC. A second folder on the same SSD does not count; when the SSD fails, both copies fail together.

1 off-site

Off the host entirely. Host-side backups live in the same data center under the same account. A billing dispute, a suspended account or a host going under takes them with the server.

On our list the median online server has 12 players and 36 percent have five or fewer. At that size a lost world is not a statistic; it is the end of the server, because the eight people who built for three months will not start again. The plan below costs under a dollar a month for a typical world.

What to back up, and what to skip

IncludeWhy
world/, world_nether/, world_the_end/ (or your named worlds)The map, plus playerdata/, stats/ and advancements/ live inside the overworld folder. Without them players lose inventories and ender chests.
plugins/ or mods/ and config/Every plugin's config, plus the data files that are really databases: LuckPerms' H2 file, GriefPrevention's ClaimData, EssentialsX userdata/, shop and economy data.
server.properties, bukkit.yml, spigot.yml, config/paper-global.yml, ops.json, whitelist.json, banned-*.jsonSmall, and the difference between a restore that takes an hour and one that takes a weekend.
External databasesIf LuckPerms, CoreProtect or your shop plugin uses MySQL or MariaDB, dump it with mysqldump in the same run. Copying the database's raw files while it runs is as bad as copying a world while it saves.

Skip logs/, cache/, libraries/, versions/ and the server jar itself. They are re-downloadable and often larger than the world. A world that is 4 GB with logs is usually 800 MB without them.

Plugins and mods that are actually maintained

Check the update date before you trust a backup tool with your only copy. As of September 2026:

ToolRuns onLast updateNotes
DriveBackupV2Paper, Spigot, Bukkit forksJanuary 2026Free, open source. Zips chosen folders on a schedule and uploads to Google Drive, OneDrive, Dropbox, (S)FTP or S3. Can also dump MySQL. The best single-plugin answer for a plugin server.
Advanced BackupsFabric, Forge, NeoForge, Paper, Quilt, SpigotAbout two years agoFull, differential and incremental modes with a command-line restore tool. Listed up to 1.21.4. Works, but verify it on your version before relying on it.
Textile BackupFabricAbout two years agoMultithreaded zip backups with in-game restore. Modrinth lists 1.21 through 1.21.10. Same caveat.
X BackupFabricAbout eight months agoIncremental backups, region-level restore, cloud upload. The most recently updated Fabric option we found.
Host panel backups (Pterodactyl and similar)AnyDepends on the hostConvenient and often limited to a few slots. Covered in its own section below.

There is no vanilla /backup command. The only built-in commands are save-all, save-off and save-on, which is why every tool above, and the script below, is built around them.

A DriveBackupV2 config that backs up the world and plugin folders every hour, keeps 20 remote copies and 3 local ones, looks like this:

# plugins/DriveBackupV2/config.yml (the keys that matter)
delay: 60
keep-count: 20
local-keep-count: 3
zip-compression: 1
local-save-directory: "backups"
remote-save-directory: "backups"
backup-list:
  - path: "world"
    format: "world-%FORMAT TIMESTAMP%.zip"
    create: true
  - path: "world_nether"
    format: "nether-%FORMAT TIMESTAMP%.zip"
    create: true
  - path: "plugins"
    format: "plugins-%FORMAT TIMESTAMP%.zip"
    create: true
googledrive:
  enabled: true

Then /drivebackup linkaccount googledrive to authorize, /drivebackup test googledrive to confirm the upload path, and /drivebackup backup to run one now. /drivebackup nextbackup tells you when the next automatic one runs. Adjust format to match the plugin's documented placeholders for your version; the plugin ships an example config with the exact syntax.

The script approach: save-off, copy, save-on

A script on the host is the most robust option because it does not depend on the server being healthy, it works on any server software, and it can back up databases too. The one rule: stop the server writing chunks while you copy. The save commands exist for exactly this. save-off "disables the server writing to the level files" and queues changes; save-all flush writes everything to disk immediately; save-on resumes normal saving.

  1. Run the server inside screen or tmux (or with RCON enabled) so the script can send console commands. The example uses a screen session named mc.
  2. Install restic on the host. It deduplicates by default, so hourly snapshots of a 2 GB world cost megabytes, not gigabytes, and every repository is encrypted with the password you set at restic init.
  3. Create the repository once, pointed at your off-site bucket, and put the credentials in a file only root can read.
  4. Schedule the script with cron or a systemd timer. Hourly during the day and a longer retention for the nightly is a good default.
#!/bin/bash
# /opt/mc/backup.sh  (run by cron every hour)
set -e
export RESTIC_REPOSITORY="s3:https://s3.us-west-004.backblazeb2.com/my-mc-backups"
export RESTIC_PASSWORD_FILE="/root/.restic-pass"
export AWS_ACCESS_KEY_ID="..." AWS_SECRET_ACCESS_KEY="..."

say() { screen -S mc -X stuff "$1\r"; }

say "save-off"
say "save-all flush"
sleep 15
restic backup /opt/mc/server/world /opt/mc/server/world_nether \
  /opt/mc/server/world_the_end /opt/mc/server/plugins \
  /opt/mc/server/server.properties /opt/mc/server/config \
  --exclude "*.log" --tag hourly
say "save-on"

restic forget --keep-hourly 24 --keep-daily 7 --keep-weekly 5 --keep-monthly 12 --prune

The forget line is restic's retention policy: it keeps the last 24 hourly, 7 daily, 5 weekly and 12 monthly snapshots and prunes the rest. If the server also uses MySQL, add mysqldump --single-transaction luckperms > /opt/mc/dumps/luckperms.sql before the restic backup line and include the dumps folder.

Off-site storage and what it costs

Prices from the providers' own pricing pages in September 2026. A typical small server world with plugins is 1 to 5 GB; with deduplication, a month of snapshots is usually two to three times that.

WherePriceFits
Backblaze B2$6.95 per TB per month; first 10 GB free; egress free up to three times your stored amount, then $0.01 per GBrestic or DriveBackupV2 over S3. A 10 GB backup set costs nothing; 50 GB costs about 35 cents a month.
Cloudflare R2$0.015 per GB-month; 10 GB-month free; no egress chargesSame use, S3-compatible. Restores are free no matter how often you pull.
Google Drive, OneDrive, DropboxFree tiers of a few GB; paid plans you may already haveDriveBackupV2's native targets. Fine for a small world; watch the free tier limit.
A second VPS or your home PCWhat you already payrestic over SFTP. Cheap and fully yours; make sure it is actually on and reachable at 3 a.m.

For a season reset or a big plugin migration, take a manual full snapshot first and tag it (--tag pre-reset). Our new season guide covers what else to keep from the old map.

Test the restore, on purpose

Every backup plan looks fine until the day it is needed. Once a month, do this on a spare folder or a cheap test VPS:

  • Restore the latest snapshot somewhere new: restic restore latest --target /opt/mc/restore-test, or download DriveBackupV2's newest zips and unzip them.
  • Start a server from it on a different port with the same jar. It should boot with no "region file corrupt" lines in the log.
  • Log in and check your inventory, a claim, your LuckPerms rank and a shop. Those four touch playerdata, claim data, permissions storage and the economy.
  • Time it. Write down how long the restore took. That number is your real recovery time, and it tells you whether a 60 GB backup set is worth trimming.
  • Check the dates in your remote bucket. A schedule that silently stopped in July is the most common backup failure of all.

What host backups do and do not cover

Most hosts run a panel with a Backups tab. Pterodactyl, the panel many hosts use, stores those either on the same node's disk or in an S3 bucket the host configures, and the host sets how many backups each server may keep. Useful, with limits you should know:

  • They live with the host. Local-driver backups sit on the same node; if the node's disk fails, so do they. S3-driver backups survive the node but not the account.
  • Slots are few. Two or three slots is common. That is a rollback tool, not a history.
  • They copy everything. Logs and cache included, so each slot is larger and slower than it needs to be. Some panels let you set an ignore list; use it.
  • They do not stop saving. Panels vary on whether they pause world saving first. If yours does not, a backup taken mid-save can hold a torn region file. Take panel backups during a restart window or right after save-all flush.
  • They end with the account. Miss a payment, get suspended, or watch the host close, and the backups go too. That is the copy 3-2-1 says must exist somewhere else.

Use the panel backups for quick rollbacks and keep the off-site copy for everything else. Then make sure players can find a server that will still exist next year: list it, keep the description current, and claim it from its server page so the listing stays yours through a move between hosts.

Quick questions

How often should I back up a Minecraft server?

Hourly snapshots with deduplication cost almost nothing, so hourly during play hours and a longer-kept nightly is a sensible default. The question to ask is "how many hours of building am I willing to lose," and set the interval below that.

Where is the Minecraft server backup location?

Wherever the tool puts it. DriveBackupV2 defaults to a backups folder inside the server directory plus the remote target; restic puts everything in the repository you chose; panel backups are on the host's node or its S3 bucket. The server itself has no built-in backup folder, because it has no built-in backup command.

Can I back up while players are online?

Yes, that is what save-off and save-all flush are for. Players keep playing; the server just queues chunk writes for the minute the copy takes, then save-on resumes. A big world may stutter briefly during the flush.

Is a zip on my PC enough?

It is one off-site copy, which is better than none. It is not enough if you make it by hand, because hand-made backups stop the week you get busy. Automate it, and keep a local copy too so a small mistake does not require a 2 GB download to fix.