btrbk: local backups

This commit is contained in:
Daniel Langbein 2023-10-04 14:43:57 +02:00
parent 56dfa0d31f
commit abf56b1de8
Signed by: langfingaz
GPG Key ID: 6C47C753F0823002
2 changed files with 47 additions and 4 deletions

View File

@ -241,8 +241,10 @@ Another remote backup server periodically pulls snapshots to create remote backu
```shell ```shell
cat > ~/btrbk.cfg <<'EOF' cat > ~/btrbk.cfg <<'EOF'
timestamp_format long timestamp_format long
stream_compress lz4
ssh_identity /mnt/backup/rootnas_ed25519 ssh_identity /mnt/backup/rootnas_ed25519
# Create backups.
target_preserve_min no target_preserve_min no
# Daily backups -> @daily cron entry # Daily backups -> @daily cron entry
target_preserve 7d 4w 6m target_preserve 7d 4w 6m

View File

@ -6,11 +6,12 @@
# #=> btrbk-<instance-name>.service # #=> btrbk-<instance-name>.service
# #=> btrbk-<instance-name>.timer # #=> btrbk-<instance-name>.timer
# #
# If onCalendar is set to null, one can manually execute btrbk with # If onCalendar is set to `null`, one can manually execute btrbk with
# sudo systemctl start btrbk-<instance-name>.service # sudo systemctl start btrbk-<instance-name>.service
# Print generated systemd unit file # Print generated systemd unit file
# cat "$(systemctl show -P FragmentPath btrbk-<instance-name>.service)" # cat "$(systemctl show -P FragmentPath btrbk-<instance-name>.service)"
# #=> ExecStart=/nix/store/53nvbl1c0w14524j7v3fpn9py31yi2hb-btrbk-0.32.6/bin/btrbk -c /etc/btrbk/local-backup.conf run
services.btrbk = { services.btrbk = {
extraPackages = [ pkgs.lz4 ]; extraPackages = [ pkgs.lz4 ];
@ -19,13 +20,13 @@
# Set of btrbk instances. The instance named btrbk is the default one. # Set of btrbk instances. The instance named btrbk is the default one.
instances = { instances = {
"local-snapshots" = { "local-snapshot" = {
onCalendar = "hourly"; onCalendar = "hourly";
#onCalendar = "*:0/15"; # Every 15min #onCalendar = "*:0/15"; # Every 15min
settings = { settings = {
timestamp_format = "long"; timestamp_format = "long";
stream_compress = "lz4"; #stream_compress = "lz4";
snapshot_preserve_min = "2d"; snapshot_preserve_min = "2d";
snapshot_preserve = "24h 7d 4w 6m"; snapshot_preserve = "24h 7d 4w 6m";
@ -36,6 +37,46 @@
"arch.p1st.de" = {}; "arch.p1st.de" = {};
"blogger.privacy1st.de" = {}; "blogger.privacy1st.de" = {};
"changedetection.p1st.de" = {}; "changedetection.p1st.de" = {};
# MediaKollektiv: 796 GiB
"cloud.media-kollektiv.eu" = {};
"cloud.privacy1st.de" = {};
"git.privacy1st.de" = {};
#"mastodon-toot-follower.privacy1st.de" = {};
"money.p1st.de" = {};
"music.privacy1st.de" = {};
#"paste.p1st.de" = {};
"proxy" = {};
"recipe.privacy1st.de" = {};
"traggo.privacy1st.de" = {};
};
};
};
};
"local-backup" = {
# Run daily, 5 minutes after `local-snapshot` 0'o'clock timer.
onCalendar = "00:05";
settings = {
timestamp_format = "long";
#stream_compress = "lz4";
# Create backups.
target_preserve_min = "no";
target_preserve = "7d 4w 6m";
# Don't create or delete snapshots.
snapshot_preserve_min = "all";
snapshot_create = "no";
volume."/mnt/data/data" = {
snapshot_dir = "/mnt/data/snap";
target = "/mnt/backup/snap";
subvolume = {
"arch.p1st.de" = {};
"blogger.privacy1st.de" = {};
"changedetection.p1st.de" = {};
# MediaKollektiv: 796 GiB
"cloud.media-kollektiv.eu" = {}; "cloud.media-kollektiv.eu" = {};
"cloud.privacy1st.de" = {}; "cloud.privacy1st.de" = {};
"git.privacy1st.de" = {}; "git.privacy1st.de" = {};