Game server backups, 3-2-1 for people who aren't sysadmins
Game server backups, 3-2-1 for people who aren't sysadmins
The "3-2-1 rule" sounds like enterprise speak. It isn't. It's a one-line summary of "what you actually need so you don't lose your server."
This article translates 3-2-1 into a concrete setup someone with no sysadmin background can do this weekend.
The rule, visualized
That's all. The reasoning underneath is elegant: any single failure mode breaks one location; two-of-three survives. Off-site survives the worst case (your house burning down, your hosting company disappearing).
Translated to your server
For a game server:
- Copy 1: The live world on the host.
- Copy 2: A backup folder on the same host or a different drive.
- Copy 3: A backup in cloud storage somewhere else entirely.
Each copy serves a different threat:
| Threat | Defense |
|---|---|
| You accidentally delete a file | Copy 2 |
| Your save corrupts during a crash | Copy 2 |
| The hosting provider deletes your server | Copy 3 |
| The hosting provider goes bankrupt | Copy 3 |
| Your billing card expires and they delete your data | Copy 3 |
Copy 2 covers the common stuff. Copy 3 covers the catastrophes you don't think about until they happen.
What "off-site" means in practice
Off-site means: stored somewhere that wouldn't go down at the same time as your live server.
If your live server is on Hosting Provider A:
- Off-site is NOT another folder on Hosting Provider A.
- Off-site is cloud storage (S3, Backblaze, R2), a different hosting provider, your home machine, or a friend's machine.
For most hobbyists, cloud object storage is the cheapest and simplest off-site option. Backblaze B2 charges about $6 per terabyte per month. A 10 GB game backup costs about $0.06 a month. There's no excuse for not doing this.
The 30-minute setup
Step 1: Set up local backups
Most game hosting panels (Pterodactyl, etc.) have a "Backups" tab. Set it to:
- Take a backup every 6 hours.
- Keep 14 days of backups.
Done. Copy 1 is the live server. Copy 2 is the panel-managed backups on the host.
Step 2: Sign up for cloud storage
Pick one:
- Backblaze B2. Cheap, simple. ~$6/TB/month.
- AWS S3. More features but more complex.
- Cloudflare R2. Zero egress fees, good for backups you'll mostly read locally.
Backblaze B2 is the recommended default for hobbyists. Sign up, create a bucket, generate an API key.
Step 3: Set up rclone
rclone is a free tool that syncs files between local and cloud storage. Install on your server (or anywhere the backups exist).
rclone config
Walks you through adding a remote. Pick "Backblaze B2." Enter your key. Save.
Test:
rclone ls b2:your-bucket-name
Should list the bucket contents (empty at first).
Step 4: Daily push to cloud
A simple script that runs from cron once a day:
#!/bin/bash
# Push latest local backup to B2
LATEST=$(ls -1t /home/user/server/backups/*.tar.gz | head -1)
rclone copy "$LATEST" b2:your-bucket-name/
Save as /usr/local/bin/backup-push.sh, make executable, cron at 2 AM:
0 2 * * * /usr/local/bin/backup-push.sh
Step 5: Encrypt the cloud copy (optional but recommended)
rclone supports "crypt" remotes that encrypt before uploading. To set up:
rclone config
Choose "n" for new remote, name it b2-crypt, type crypt, point it at your existing b2: remote with a path.
Now rclone copy file b2-crypt:bucket/path encrypts as it uploads. The file is unreadable to Backblaze (or anyone else who gets the data).
Set a strong passphrase. Store it in a password manager. Print it. Email it to yourself. If you lose the passphrase, your backups are gone.
A working setup, summarized
After 30 to 60 minutes of setup:
- Live server: in your hosting panel.
- Local backups: every 6 hours, 14 days retention, automatic via panel.
- Off-site backups: daily push to encrypted cloud storage.
- Cost: cents per month.
You now meet 3-2-1.
The restore test
You're not done until you've tested restoring. Schedule a test for the same weekend:
- Pick the most recent backup in cloud storage.
- Download it.
- Extract it to a side directory.
- (For a game server) boot a test instance on the backup.
- Confirm it loads.
If anything fails, fix it now while you have time. The first restore-from-scratch should never be in an emergency.
Common mistakes the simple setup catches
Mistake: all backups on the same drive.
The panel's backup feature puts backups on the same disk as the server. If the disk fails, you lose both. The cloud push fixes this.
Mistake: trusting "automatic backups" without verification.
The panel says it backed up. The backup file might be a few bytes of error message. Test by downloading and extracting periodically.
Mistake: keeping only the latest backup.
You might not notice corruption for a week. By then, your "current backup" is just a copy of the corrupted data. Keep multiple versions: 14 daily + weekly + monthly retention is good.
Mistake: not encrypting.
Your world file may contain player data (UUIDs, IPs, plugin databases with email addresses). Encryption is cheap insurance.
A note on retention
How long is long enough?
| Tier | What it recovers from |
|---|---|
| 24 hourly | "I made a mistake an hour ago" |
| 14 to 30 daily | "We just noticed a problem from a week ago" |
| 12 weekly | "The corruption started months ago and we've been backing up the corruption" |
| 1 year monthly | Disaster recovery, "I miss what spawn looked like" |
Storage is cheap. Don't skimp on retention.
What if you self-host?
If your server is on a home machine, your "off-site" needs to leave the house. Same rclone setup, push to cloud storage. The Backblaze B2 cost is the same. There's no reason your home server should be less protected than a paid one.
A note for shared / cheap hosting
Some very low-budget hosting tiers limit the size or frequency of backups. If you're on such a plan:
- Use whatever the panel provides.
- Add your own cloud push.
- Consider upgrading if your community is growing and the host won't keep up.
Trust your own backups more than any host's marketing.
Conclusion
3-2-1 sounds enterprise. It's actually one weekend of setup. Once done, your server is meaningfully safer than most game servers, including many that pay for "backup services." The investment is tiny; the protection is genuine.
Don't wait until something breaks to set this up. Do it this weekend.
Hosting your game server with AndroHost means we handle most of what's in this post for you automatically: tier sizing, SRV records, off-site backups, DDoS protection.
Keep reading
Load balancing, L4 vs L7 and when each matters
Many services run on multiple servers. A load balancer is the thing that decides which incoming request goes to which server. It sounds simple. The implementation choices have meaningful consequences.
GRE tunnels, how scrubbing services route traffic through their network
When a DDoS protection service "absorbs" attacks on your behalf, the actual mechanism usually involves a GRE tunnel: a virtual point-to-point link between your real server and the protection service's network. Cleaned traffic comes out t...
BGP hijacks and RPKI, the routing security problem
BGP is the protocol that makes the internet work. It's also one of its weakest links: by default, BGP has no authentication. If a router announces "I can reach this prefix," other routers tend to believe it. This has caused outages, redi...