From 3d93bffc3159d0f8160ba3e3f04e7c8d8abe1f3c Mon Sep 17 00:00:00 2001 From: mc-fucker Date: Mon, 10 Nov 2025 14:17:36 +0100 Subject: [PATCH] moved snapraid_snapshots.sh to script folder --- scripts/snapraid_snapshots.sh | 32 ++++++++++++++++++++++++++++++++ snapraid.nix | 10 ++-------- 2 files changed, 34 insertions(+), 8 deletions(-) create mode 100755 scripts/snapraid_snapshots.sh diff --git a/scripts/snapraid_snapshots.sh b/scripts/snapraid_snapshots.sh new file mode 100755 index 0000000..d641e97 --- /dev/null +++ b/scripts/snapraid_snapshots.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash +day="$(date -I)" +drivelist="$(grep -F "data d" /etc/snapraid.conf | grep -Po "(?<=/mnt/snapshot/)[[:alnum:]]*")" +param=$1 + +function create { + echo "$drivelist" | while IFS="" read -r serial; do + drive="/mnt/drives/${serial}" + if [[ ! -s "${drive}/snapraid?.parity" ]]; then + if [[ ! -d "${drive}/.snapshot/${day}" ]]; then + btrfs subvolume snapshot -r "$drive" "${drive}/.snapshot/${day}" + ln -nsfr "${drive}/.snapshot/${day}" "/mnt/snapshot/${serial}" + fi + fi + done +} + +function delete { + echo "$drivelist" | while IFS="" read -r serial; do + drive="/mnt/drives/${serial}" + snapshots="$(ls -1 -d "${drive}/.snapshot/"* | head -n -1)" + echo "$snapshots" | while IFS="" read -r snap; do + btrfs subvolume delete "$snap" + done + done +} + +if [[ "$param" == "create" ]]; then + create +elif [[ "$param" == "delete" ]]; then + delete +fi diff --git a/snapraid.nix b/snapraid.nix index 60f845b..0f6f7e1 100644 --- a/snapraid.nix +++ b/snapraid.nix @@ -14,12 +14,6 @@ in #systemd.timers."snapraid-scrub".enable = false; #temporarily systemd.services."snapraid-sync" = { - #preStart = "systemctl start snapraid-pre"; - #postStart = "systemctl start snapraid-post"; - #path = [ - # pkgs.bash - # pkgs.btrfs-progs - #]; serviceConfig = { ReadWritePaths = [ "/mnt/snapshot/ZVV0688G/.snapshot/" @@ -49,7 +43,7 @@ in description = "Create btrfs snapshots for each disk in the array"; serviceConfig = { Type = "oneshot"; - ExecStart = "/etc/nixos/modules/snapraid_snapshots.sh create"; + ExecStart = "/etc/nixos/scripts/snapraid_snapshots.sh create"; }; path = snapshot-path; }; @@ -57,7 +51,7 @@ in description = "Delete btrfs snapshots for each disk in the array"; serviceConfig = { Type = "oneshot"; - ExecStart = "/etc/nixos/modules/snapraid_snapshots.sh delete"; + ExecStart = "/etc/nixos/scripts/snapraid_snapshots.sh delete"; }; path = snapshot-path; };