More tmpfs impermanence fixes.
This commit is contained in:
@@ -6,8 +6,7 @@ let
|
||||
btrfs = "${btrfsPkg}/bin/btrfs";
|
||||
snapshotBackup = pkgs.writeScript "kopia-snapshot-backup" (builtins.readFile ./kopia-snapshot-backup.sh);
|
||||
backupScript = pkgs.writeShellScript "backup-persist" ''
|
||||
target_path="/persist"
|
||||
snapshot_path="$target_path/kopia-backup-snapshot"
|
||||
target_path="${config.custom.impermanence.persistPath}"
|
||||
KOPIA_CHECK_FOR_UPDATES=false
|
||||
|
||||
${kopia} repository connect server \
|
||||
@@ -16,18 +15,29 @@ let
|
||||
-p "$(cat ${config.sops.secrets.kopia.path})" \
|
||||
|| exit 1
|
||||
|
||||
[ -e "$snapshot_path" ] && ${btrfs} subvolume delete "$snapshot_path"
|
||||
# Check if target_path is on btrfs filesystem
|
||||
fs_type=$(stat -f -c %T "$target_path")
|
||||
|
||||
${btrfs} subvolume snapshot -r "$target_path" "$snapshot_path"
|
||||
if [ "$fs_type" = "btrfs" ]; then
|
||||
# On btrfs: use snapshot for consistency
|
||||
snapshot_path="$target_path/kopia-backup-snapshot"
|
||||
[ -e "$snapshot_path" ] && ${btrfs} subvolume delete "$snapshot_path"
|
||||
${btrfs} subvolume snapshot -r "$target_path" "$snapshot_path"
|
||||
|
||||
# --no-send-snapshot-path due to https://github.com/kopia/kopia/issues/4402
|
||||
# Exclude btrfs replication snapshots (they appear as empty dirs in the snapshot anyway)
|
||||
${kopia} snapshot create --no-send-snapshot-report --override-source "$target_path" \
|
||||
--ignore "services@*" \
|
||||
--ignore "services-standby/services@*" \
|
||||
-- "$snapshot_path"
|
||||
# --no-send-snapshot-path due to https://github.com/kopia/kopia/issues/4402
|
||||
# Exclude btrfs replication snapshots (they appear as empty dirs in the snapshot anyway)
|
||||
${kopia} snapshot create --no-send-snapshot-report --override-source "$target_path" \
|
||||
--ignore "services@*" \
|
||||
--ignore "services-standby/services@*" \
|
||||
-- "$snapshot_path"
|
||||
|
||||
${btrfs} subvolume delete "$snapshot_path"
|
||||
else
|
||||
# On non-btrfs (e.g., ext4): backup directly without snapshot
|
||||
${kopia} snapshot create --no-send-snapshot-report --override-source "$target_path" \
|
||||
-- "$target_path"
|
||||
fi
|
||||
|
||||
${btrfs} subvolume delete "$snapshot_path"
|
||||
${kopia} repository disconnect
|
||||
'';
|
||||
in
|
||||
|
||||
Reference in New Issue
Block a user