local x=$(mktemp); e $pid >$x; pidwait -e -F $x; rm $x
}
+# printf string + newline
+pn() { printf '%s\n' "$@"; }
+
# * stuff that makes sense to be at the end
# note, if we unset IFS, that will mess up completion scripts which
+++ /dev/null
-transaction_syslog local7
-
-lockfile /var/lock/btrbk-n3.lock
-
-timestamp_format long-iso
-
-snapshot_create onchange
-
-snapshot_preserve 18h 14d 8w 12m
-snapshot_preserve_min 2d
-snapshot_dir btrbk
-
-target_preserve 18h 14d 8w 12m
-target_preserve_min 2d
-
-rate_limit no
-
-volume /mnt/n3
-subvolume dia
-subvolume dib
-subvolume dic
-subvolume did
-subvolume die
-subvolume dif
-subvolume dig
-subvolume dih
-subvolume dii
-subvolume dij
-subvolume dik
-subvolume dil
-subvolume dim
-subvolume din
-subvolume dio
-subvolume dip
-subvolume diq
-subvolume dir
-subvolume dis
-subvolume dit
-subvolume dlapi
--- /dev/null
+lockfile /var/lock/btrbk-nbase.lock
+transaction_syslog local7
+timestamp_format long-iso
+send_compressed_data yes
+snapshot_preserve 18h 14d 8w 12m
+snapshot_preserve_min 2d
+snapshot_dir btrbk
+target_preserve 18h 14d 8w 12m
+target_preserve_min 2d
+snapshot_create onchange
+
+volume /mnt/nbase
+subvolume rbase
+target send-receive /mnt/root/btrbk
+target send-receive ssh://kd.b8.nz/mnt/r6/btrbk
+subvolume rjson
+target send-receive ssh://kd.b8.nz/mnt/r6/btrbk
+lockfile /var/lock/btrbk-r2.lock
transaction_syslog local7
-
-lockfile /var/lock/btrbk-r2.lock
-
timestamp_format long-iso
-
-snapshot_create onchange
-
+send_compressed_data yes
snapshot_preserve 18h 14d 8w 12m
snapshot_preserve_min 2d
snapshot_dir btrbk
-
target_preserve 18h 14d 8w 12m
target_preserve_min 2d
+snapshot_create onchange
-rate_limit no
volume /mnt/r2
subvolume srip1
subvolume fsf-mailrec
+subvolume m8
+subvolume m9
+subvolume ma
+subvolume mb
+subvolume diq
+subvolume dir
+subvolume dis
+subvolume dit
+lockfile /var/lock/btrbk-r3.lock
transaction_syslog local7
-
-lockfile /var/lock/btrbk-r3.lock
-
timestamp_format long-iso
-
-snapshot_create onchange
-
+send_compressed_data yes
snapshot_preserve 18h 14d 8w 12m
snapshot_preserve_min 2d
snapshot_dir btrbk
-
target_preserve 18h 14d 8w 12m
target_preserve_min 2d
+snapshot_create onchange
-rate_limit no
volume /mnt/r3
subvolume ar
subvolume d-r3
-subvolume m8
-subvolume m9
-
subvolume qr
subvolume srip2
+subvolume dia
+subvolume dib
+subvolume dic
+subvolume did
+lockfile /var/lock/btrbk-r4.lock
transaction_syslog local7
-
-lockfile /var/lock/btrbk-r4.lock
-
timestamp_format long-iso
-
-snapshot_create onchange
-
+send_compressed_data yes
snapshot_preserve 18h 14d 8w 12m
snapshot_preserve_min 2d
snapshot_dir btrbk
-
target_preserve 18h 14d 8w 12m
target_preserve_min 2d
+snapshot_create onchange
-rate_limit no
volume /mnt/r4
-subvolume m3
subvolume m4
subvolume m5
subvolume m6
subvolume m7
-subvolume ma
-subvolume mb
-subvolume mc
-subvolume md
-subvolume me
-subvolume mf
-
subvolume roverflow
+subvolume die
+subvolume dif
+subvolume dig
+subvolume dih
+lockfile /var/lock/btrbk-r5.lock
transaction_syslog local7
-
-lockfile /var/lock/btrbk-r5.lock
-
timestamp_format long-iso
-
-snapshot_create onchange
-
+send_compressed_data yes
snapshot_preserve 18h 14d 8w 12m
snapshot_preserve_min 2d
snapshot_dir btrbk
-
target_preserve 18h 14d 8w 12m
target_preserve_min 2d
-
-rate_limit no
+snapshot_create onchange
volume /mnt/r5
subvolume d
+subvolume mc
+subvolume md
+subvolume me
+subvolume mf
+subvolume dii
+subvolume dij
+subvolume dik
+subvolume dil
+lockfile /var/lock/btrbk-root.lock
transaction_syslog local7
-
-lockfile /var/lock/btrbk-root.lock
-
timestamp_format long-iso
-
-snapshot_create onchange
-
+send_compressed_data yes
snapshot_preserve 18h 14d 8w 12m
snapshot_preserve_min 2d
snapshot_dir btrbk
-
target_preserve 18h 14d 8w 12m
target_preserve_min 2d
+snapshot_create onchange
-rate_limit no
volume /mnt/root
-
-# a & q are handled separately by btrbk-run & btrbk.timer
-
subvolume m0
+target send-receive /mnt/r3/btrbk
subvolume m1
+target send-receive /mnt/r3/btrbk
subvolume m2
+target send-receive /mnt/r3/btrbk
+subvolume m3
+target send-receive /mnt/r3/btrbk
subvolume ro2
+target send-receive ssh://kd.b8.nz/mnt/r6/btrbk
+
+
+# side note: a & q are handled separately by btrbk-run & btrbk.timer
--- /dev/null
+int-vgnvme-WD_BLACK_SN850P_for_PS5_8000GB_24517P800200-ndi /dev/vgnvme-WD_BLACK_SN850P_for_PS5_8000GB_24517P800200/ndi - allow-discards,mode=direct
+int-vgnvme-WD_BLACK_SN850X_8000GB_245244802091-ndi /dev/vgnvme-WD_BLACK_SN850X_8000GB_245244802091/ndi - allow-discards,mode=direct
+int-vgnvme-WD_BLACK_SN850X_8000GB_245244802317-ndi /dev/vgnvme-WD_BLACK_SN850X_8000GB_245244802317/ndi - allow-discards,mode=direct
+int-vgnvme-WD_BLACK_SN850X_8000GB_25026Y802189-ndi /dev/vgnvme-WD_BLACK_SN850X_8000GB_25026Y802189/ndi - allow-discards,mode=direct
--- /dev/null
+lockfile /var/lock/btrbk-r6.lock
+transaction_syslog local7
+timestamp_format long-iso
+send_compressed_data yes
+snapshot_preserve 18h 14d 8w 12m
+snapshot_preserve_min 2d
+snapshot_dir btrbk
+target_preserve 18h 14d 8w 12m
+target_preserve_min 2d
+snapshot_create onchange
+
+volume /mnt/r6
+subvolume dim
+subvolume din
+subvolume dio
+subvolume dip
+subvolume fsf-kaya
--- /dev/null
+[Unit]
+Description=Snapshot subvolumes that have a primary location in /mnt/r6
+After=multi-user.target
+
+[Service]
+Type=oneshot
+ExecStart=/usr/local/bin/sysd-mail-once btrbkr6 btrbk -c /etc/btrbk/r6.conf run
--- /dev/null
+[Unit]
+Description=Btrbk rbackup timer
+
+[Timer]
+OnCalendar=*-*-* 23:30:00 America/New_York
+
+[Install]
+WantedBy=timers.target
2 screens: XPosition=2
2 screens: YPosition=2
3840x2160 screen: Height=2156
-3840x2160 screen: Width=3836
-3840x2160 screen: XPosition=2
+3840x2160 screen: Width=956
+3840x2160 screen: XPosition=1922
3840x2160 screen: YPosition=2
DP-0=DP-0
DP-1 eDP-1=DP-1
# After=default.target. I figured this probably works and is simpler.
After=gpg-agent.service
After=local-fs.target
-# on desktop, we need /d to mount, and based on logs, this is the next target after it mounts:
+# on desktop, we need /d to mount, and based on logs, this is the next target after it mounts.
+# However, this does nothing since a user service is blind to system targets.
After=multi-user.target
+Restart=always
+RestartSec=30
+TimeoutStartSec=300
+
[Service]
# tmux requirement
Type=forking