mirror of
https://github.com/ryan4yin/nix-config.git
synced 2026-03-24 02:11:29 +01:00
40 lines
1.3 KiB
Nix
40 lines
1.3 KiB
Nix
{
|
|
# ==================================================================
|
|
#
|
|
# Tool for creating snapshots and remote backups of btrfs subvolumes
|
|
# https://github.com/digint/btrbk
|
|
#
|
|
# Usage:
|
|
# 1. btrbk will create snapshots on schedule
|
|
# 2. we can use `btrbk run` command to create a backup manually
|
|
#
|
|
# How to restore a snapshot:
|
|
# 1. Find the snapshot you want to restore in /snapshots
|
|
# 2. Use `btrfs subvol delete /btr_pool/@persistent` to delete the current subvolume
|
|
# 3. Use `btrfs subvol snapshot /snapshots/2021-01-01 /btr_pool/@persistent` to restore the snapshot
|
|
# 4. reboot the system or remount the filesystem to see the changes
|
|
#
|
|
# ==================================================================
|
|
|
|
services.btrbk.instances.btrbk = {
|
|
# How often this btrbk instance is started. See systemd.time(7) for more information about the format.
|
|
onCalendar = "daily";
|
|
settings = {
|
|
# keep daily snapshots for 14 days
|
|
snapshot_preserve = "14d";
|
|
# keep all snapshots for 2 days, no matter how frequently you (or your cron job) run btrbk
|
|
snapshot_preserve_min = "2d";
|
|
volume = {
|
|
"/btr_pool" = {
|
|
subvolume = {
|
|
"@persistent" = {
|
|
snapshot_create = "always";
|
|
};
|
|
};
|
|
target = "/snapshots";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|