Manage timestamped collections of btrfs snapshots.
This project is inspired by Snapper's timeline and cleanup algorithms, but with the aim of being a simpler implementation, focused solely on btrfs.
The goal is not to be a drop-in replacement, but an alternative for administrators that prefer a minimum of baked-in opinions.
- Retention policies based around recurring calendar events
- Configurable snapshot locations for subvolumes
- Minimal dependencies: bash and coreutils
- Included systemd timers, but equally usable with cron
- Included shell completion for bash and zsh
To install in the default location (/usr/local):
sudo ./scripts/install
To install in a different location:
sudo PREFIX=/usr ./scripts/install
There are two packages available for Arch Linux, available via the AUR:
- btrfs-snapshots (stable, based on the latest tag)
- btrfs-snapshots-git (unstable, based on the latest commit)
For command line usage:
btrfs-snapshots --help
For detailed information:
man 8 btrfs-snapshots
man 5 btrfs-snapshots
The following packages are required to run tests:
- diffutils
- parallel
To run the included tests:
./scripts/test
For command line usage:
./scripts/test --help