There are many backup tools out there. Or should I say, there are may
backup scripts out there. Most of them will focus on a specific usage
(say, backup btrfs
snapshots to a sftp
server). All of them will
have different feature matrices (encryption/incremental backups/pruning)
and different means of configuration/deployment.
uback
try to solve this by defining a simple model of backup producers
(called "sources") and backup stores (called "destinations"), and writing
the intermediate between them once for all. One can now focus on writing
each specific source (tar
, mysqldump
, btrfs
,...) or destination
(s3
, sftp
, local files,...) in a relatively straightforward
way. After that, from the point of view of the system administrator,
the configuration can be made in a uniform way accros different backup
workflows.
Key features are encryption, compression, incremental backups (if the source allow it) and retention policy.
All the documentation is in the doc/ directory. You should start by the tutorial and then jump to advanced topics (file format, custom sources, custom destinations, proxying) or the documentation specific to each source or destination.
- tar
- mariabackup: MariaDB backup system, supports incremental backups
- btrfs: btrfs snapshots
- fs: local filesystem
- object-storage: S3-compatible object storage
- btrfs
uback
is in a preliminary stage, quite lacking feature-wide, but fairly
stable with a good test suite. Here is a rough sketch of the roadmap :
- Core features:
- Backups & Incremental Backups
- Restoration
- Encryption
- Compression
- Pruning/Retention Policy
- Sources:
tar
,mariabackup
- Destinations: local filesystem, S3 compatible object storage
- Documentation
- CI/Release Management
- Custom sources
- Custom destinations
- switch to age for encryption. This will be the first (and hopefully the last) breaking change for the file format and keys format.
-
btrfs
source -
btrfs
destination - remove mariabackup footguns
- add the option to use a dockerized mariabackup in the restoration process to have an exect version match
- returns an error when attempting to create an incremental backup based on a full backup created by a different version
- Fix a compatibility issue with MariaDB 11
- Proxy support
- Allow multiple public keys per backup
- Object storage: allow to customize part size
- FTP/SFTP support
- Should be suitable for production
- Community feedback