Is Urbackup good for keeping an incremental backup of a website server on the cloud?

From what I’ve read, it seems like Urbackup might be a good option for my use case, but I thought I’d just ask this general question before I put the time and energy in to setting it up.

What I’m looking for is a good backup solution for a LEMP stack website server, and I’d like to back it up to the cloud, eg, Google or Amazon storage options. I’d like something that can be automated, either via cron prompts or the software itself, and keep the data up-to-date incrementally.

Ultimately, I’d like to be able to relatively easily restore the entire server should disaster strike and the server be wiped out somehow (hacks, fire destroys the physical server, etc).

Can Urbackup be a good solution for this use case? Thanks for any feedback.

bump Any advice on this would be most welcome!

I’m not an expert, so perhaps other people would have other opinions, but I wouldn’t use urbackup for this purpose, due to the fact that mysql (especially the innodb engine) stores data in memory that can’t be backed up from disk during normal operation.

There are only 2 safe ways to backup mysql (innodb) that I know of:

  1. Dump using mysqldump (might cause database-wise write lock if consistency is important)

  2. Stop mysql, create snapshot, start mysql, backup snapshot, delete snapshot.

How I would address your issue:

  • Run your website as lxd container using btrfs filesystem
  • On schedule, run a script that:
    • Stops the container (this would issue a graceful shutdown of mysql)
    • Create a snapshot (this would be instant thanks to btrfs’s copy-on-write)
    • Restart the container (total downtime should be several seconds at most)
    • Export the snapshot to a backup file on disk, then delete the snapshot
    • Backup the file to your preferred destination, then delete the file

If this sound too complicated, you may use Proxmox Backup Server instead.

Thanks, I appreciate your help. Proxmox is too expensive for our situation. I am using a RHEL server, which has Bacula installed. It seemed too complicated at first, but I think it may be the best solution, so I will have to delve into it.

Thanks again.