Incrementally backup btrbk-cretead snapshots into object storage services.
Snapshot subvolumes are named NAME.TIMESTAMP[_ID]
- parent backups: btrfs subvolume copied as is, with
btrfs send SUBVOLUME
- named
NAME.TIMESTAMP[_ID].
- named
- backup backup: btrfs subvolume sent incrementally, with
btrfs send -p BASE_SUBVOLUME SUBVOLUME
- named
NAME.TIMESTAMP_ID-BASE_TIMESTAMP_[ID]
- named
(in OSS there can be file splitting / encryption / compression. )
- user should specify
NAME.TIMESTAMP
1a. if not found, fail 1b. if the backup is a full one, do aoss-read | btrfs receive
1c. if the backup is a incremental one, restore its parent
[volumes]
[storage.x]
vendor=X # opendal-supported
# list stat
btrbkar status
btrbkar backup NAME_OR_PATH
btrbkar restore NAME DEST
-c CONFIG
-b BACKEND
--no-prune only rir bbkar
SNAPSHOT_PREFIX , _btrbk_snapshots/NAME
The idea is inspired by this comment, btrfs-send-to-s3 and others.
- encryption (maybe with https://github.com/str4d/rage/) and compression