mirror of
https://codeberg.org/privacy1st/nix-git
synced 2024-11-21 22:03:19 +01:00
btrbk: local backups
This commit is contained in:
parent
56dfa0d31f
commit
abf56b1de8
@ -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
|
||||||
|
@ -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,16 +20,16 @@
|
|||||||
# 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";
|
||||||
|
|
||||||
volume."/mnt/data/data" = {
|
volume."/mnt/data/data" = {
|
||||||
snapshot_dir = "/mnt/data/snap";
|
snapshot_dir = "/mnt/data/snap";
|
||||||
@ -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" = {};
|
||||||
|
Loading…
Reference in New Issue
Block a user