A backup manager using btrfs for incremental local and remote backups
Project description
B4, Btrfs Backups But Better
B4 is another tool for creating incremental backups using btrfs subvolumes.
✨ Features
It comes with the following features:
- Backup remote systems or subvolumes
- Backup subvolumes inside subvolumes recursively
- Restore snapshots by replacing or copying them side by side
- Apply rules which subvolumes to keep and how to restore them
- Apply rules how long to keep the backups and at which density.
⚡️ Requirements
- Python 3.12 or higher
- A btrfs partition on the machine you want to backup and your backup destination.
- btrfs-progs
🚀 Getting Started
Take a look at the installation guide to get started. Once installed, you might take a look at the example use cases to get a starting point.
Example
This is just an example to explain the most important features. More examples can be found here
Let's say we want to backup a server with a nextcloud instance on it. The btrfs subvolume we want to backup is /opt/nextcloud. This is where we store all nextcloud-related data.
backup_targets:
# This is just a name, we want to give our target
nextcloud.example.com:
# The location which we want to backup
source: ssh://root@nextcloud.example.com/opt/nextcloud
# The location where we want to store the backups.
# A local path means, that the backups are stored on the same machine as b4.
destination: /opt/backups
# In order to be able to send snapshots incrementally, we need to have at least one parent snapshot on source side.
# Here we can define how many snapshots we want to keep for which amount of time.
src_retention:
auto: # You can create multiple rulesets, to be able to handle manual snapshots differently than automatic ones.
all: "3" # Keep only 3 snapshots on source side
manual:
all: "7days" # Keep all snapshots for 7 days on a manual backup
# The same applies to the destination side.
dst_retention:
auto:
1day: 1month # Keep daily snapshots for 1 month
1week: 1year # After that remove as many snapshots to only weekly snapshots remain, which are kept fpr a year
1month: forever # After a year keep snapshots at a monthly interval forever
timezone: utc
# While using the CLI, these are the targets which are used by default.
default_targets:
- nextcloud.example.com
To actually create a backup, you can use the following command:
b4 backup
Documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file b4_backup-1.3.5.tar.gz.
File metadata
- Download URL: b4_backup-1.3.5.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac9c3c1312b48f43280324fcd868bdd97a06c24d6643d93f26450c5a45dab8ac
|
|
| MD5 |
6ae277c42f616eadb2be29591d229cf2
|
|
| BLAKE2b-256 |
4d1e19432317dcd5a934133e5e50191f7d590ff4c261f44da45914ea2a61bb5d
|
File details
Details for the file b4_backup-1.3.5-py3-none-any.whl.
File metadata
- Download URL: b4_backup-1.3.5-py3-none-any.whl
- Upload date:
- Size: 29.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b6ff65e51119391a48b2e6763eb956e90e2ac30b85ab67776d3067ac2920c276
|
|
| MD5 |
9cab9a815525ec6c7bb80c5e9c6e0234
|
|
| BLAKE2b-256 |
ddbcf9b5a247d21ec9770cd781e6b3464d7930201a4c0e608e066324fe25438c
|