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 <noreply@anthropic.com>
This commit is contained in:
@@ -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 \
|
||||
|
||||
Reference in New Issue
Block a user