Server Backup and Recovery Tutorial

This guide will walk you through the fundamentals of **server backup and recovery** with step-by-step instructions.

💡 Why this matters? Backups ensure business continuity. With a solid recovery plan, you can restore your server within minutes after a disaster.


What is Backup and Recovery?

  • Backup: Creating a copy of your files, databases, or entire system and storing them in a secure location.

  • Recovery: Restoring those backups when data loss or server failure occurs.


Types of Backups

Backup Type
Description
Use Case

Full Backup

Copies everything

Best for weekly/monthly backups

Incremental

Only copies changes since the last backup

Efficient daily backups

Differential

Copies changes since the last full backup

Balance between full and incremental

Snapshot

Point-in-time server image

Cloud hosting & virtualization

Offsite Backup

Stores backups on a remote server/cloud

Disaster recovery protection

📌 Best Practice Use a combination of full + incremental + offsite backups for maximum reliability.


Step 1: Planning Your Backup Strategy

  1. Define critical data: Web files, databases, configs, user data.

  2. Choose frequency: Daily (incremental), weekly (full).

  3. Select storage: Local, remote, or cloud.

  4. Automate tasks: Avoid manual backups.


Step 2: Backup Methods

A. File-Level Backup (rsync)

rsync -avz /var/www/ root@backup-server:/backups/website/
  • Syncs files between servers.

  • Works well for websites, config files, and logs.


B. Database Backup (MySQL/MariaDB Example)

mysqldump -u root -p dbname > /backups/dbname_$(date +%F).sql
  • Creates a .sql dump file.

  • Easy to restore.


C. Full Server Image Backup

With tools like dd or virtualization snapshots:

dd if=/dev/sda of=/backups/server_image.img bs=1M
  • Copies entire disk block by block.

  • Useful for bare-metal recovery.


D. Cloud Backups

Automate to cloud providers:

  • AWS S3

  • Backblaze B2

  • Google Cloud Storage

Example with rclone:

rclone sync /backups remote:clouduxe-server-backup

🚀 Pro Tip Use Clouduxe automated backup service to schedule daily snapshots stored in multiple regions.


Step 3: Automating Backups with Cron

Automation reduces human error. Example daily backup at 2 AM:

crontab -e

Add:

0 2 * * * /usr/bin/rsync -avz /var/www/ /backups/

Step 4: Recovery Process

A. File Recovery

Restore from rsync backup:

rsync -avz /backups/website/ /var/www/

B. Database Recovery

mysql -u root -p dbname < /backups/dbname_latest.sql

C. Full Server Recovery

  • Boot from a rescue ISO.

  • Restore disk image:

dd if=/backups/server_image.img of=/dev/sda bs=1M

⚠️ Warning Restoring a full image will overwrite existing data. Use with caution.


Step 5: Testing Your Backups

Success Rule A backup is useless until tested. Always verify recovery before trusting it.

Ways to test:

  • Restore files on a test server.

  • Import database backups into staging.

  • Validate cloud backup integrity with checksum (sha256sum).


Step 6: Best Practices for Backup and Recovery

  1. Follow the 3-2-1 rule: 3 copies, 2 storage types, 1 offsite.

  2. Encrypt sensitive backups with gpg.

  3. Use monitoring tools to confirm backup success.

  4. Keep a disaster recovery plan documented.

  5. Rotate backups (delete old backups automatically).


Troubleshooting Backup Issues

Problem
Fix

Backup too slow

Use incremental backups

Disk full

Compress backups with tar/gzip

Corrupt backup file

Always verify with checksum

Database restore fails

Check MySQL version compatibility

Cloud sync errors

Update rclone / check API keys


Conclusion

With a solid backup and recovery strategy, your server is protected from failures, cyberattacks, or accidental mistakes.

By following this guide, you now know how to:

  • Choose the right backup method

  • Automate backups

  • Restore files, databases, and full systems

  • Test backups for reliability

💡 Next Step: Explore Clouduxe’s backup solutions to automate and scale your disaster recovery.

Last updated

Was this helpful?