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
|
/data/daten/DJing/Data/MusicLibrary.db; do
|
||||||
[ -f "$db" ] || continue
|
[ -f "$db" ] || continue
|
||||||
out="$SNAP/$(echo "$db" | sed 's#^/data/##; s#/#_#g')"
|
out="$SNAP/$(echo "$db" | sed 's#^/data/##; s#/#_#g')"
|
||||||
${pkgs.sqlite}/bin/sqlite3 "$db" ".timeout 15000" ".backup '$out'" \
|
# Echtes SQLite -> konsistentes .backup. Andernfalls (filebrowser
|
||||||
|| echo "WARN: snapshot of $db failed" >&2
|
# 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
|
done
|
||||||
|
|
||||||
${pkgs.rclone}/bin/rclone sync /data gdrive:backup-daten \
|
${pkgs.rclone}/bin/rclone sync /data gdrive:backup-daten \
|
||||||
|
|||||||
Reference in New Issue
Block a user