From 3d2cfc1be5269e1a400b5bca5d66c2b5f57482e9 Mon Sep 17 00:00:00 2001 From: Daniel Lindenfelser Date: Sun, 26 Jul 2026 09:42:38 +0200 Subject: [PATCH] rclone-backup: fall back to raw copy for non-SQLite DBs filebrowser's database.db is BoltDB, not SQLite, so sqlite .backup left a 0-byte snapshot. Try .backup and fall back to cp when it isn't SQLite (or is locked), so every DB gets a usable snapshot. Co-Authored-By: Claude Opus 4.8 --- modules/fileserver.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/modules/fileserver.nix b/modules/fileserver.nix index c23f5a1..f630a05 100644 --- a/modules/fileserver.nix +++ b/modules/fileserver.nix @@ -317,8 +317,13 @@ /data/daten/DJing/Data/MusicLibrary.db; do [ -f "$db" ] || continue out="$SNAP/$(echo "$db" | sed 's#^/data/##; s#/#_#g')" - ${pkgs.sqlite}/bin/sqlite3 "$db" ".timeout 15000" ".backup '$out'" \ - || echo "WARN: snapshot of $db failed" >&2 + # Echtes SQLite -> konsistentes .backup. Andernfalls (filebrowser + # nutzt z.B. BoltDB) oder bei Sperre auf eine Rohkopie zurückfallen. + if ${pkgs.sqlite}/bin/sqlite3 "$db" ".timeout 15000" ".backup '$out'" 2>/dev/null && [ -s "$out" ]; then + : + else + cp -f "$db" "$out" || echo "WARN: snapshot of $db failed" >&2 + fi done ${pkgs.rclone}/bin/rclone sync /data gdrive:backup-daten \