|
|
|
@@ -73,7 +73,7 @@ host_backup() {
|
|
|
|
|
return 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
python3 "$SCRIPT_DIR/Web/backup_invoices.py" \
|
|
|
|
|
python3 "$SCRIPT_DIR/Web/modules/inventarsystem/backup_invoices.py" \
|
|
|
|
|
--archive-dir "$INVOICE_ARCHIVE_DIR" \
|
|
|
|
|
--base-name "$BASE_NAME"
|
|
|
|
|
}
|
|
|
|
@@ -100,25 +100,23 @@ docker_backup() {
|
|
|
|
|
output_dir="/tmp/invoice_archive_${timestamp}"
|
|
|
|
|
remote_base="${output_dir}/${BASE_NAME}"
|
|
|
|
|
|
|
|
|
|
# Wir verketten die kritischen Schritte mit &&.
|
|
|
|
|
# Falls der Pfad doch '/app/Web/...' sein sollte, passe ihn hier einfach wieder an.
|
|
|
|
|
docker compose -f "$COMPOSE_FILE" exec -T app mkdir -p "$output_dir" && \
|
|
|
|
|
docker compose -f "$COMPOSE_FILE" exec -T app python3 /app/backup_invoices.py \
|
|
|
|
|
docker compose -f "$COMPOSE_FILE" exec -T app mkdir -p "$output_dir"
|
|
|
|
|
|
|
|
|
|
docker compose -f "$COMPOSE_FILE" exec -T app python3 /app/Web/modules/inventarsystem/backup_invoices.py \
|
|
|
|
|
--archive-dir "$output_dir" \
|
|
|
|
|
--base-name "$BASE_NAME" && \
|
|
|
|
|
mkdir -p "$INVOICE_ARCHIVE_DIR" && \
|
|
|
|
|
docker cp "$app_container":"${remote_base}.jsonl" "$INVOICE_ARCHIVE_DIR/" && \
|
|
|
|
|
docker cp "$app_container":"${remote_base}.csv" "$INVOICE_ARCHIVE_DIR/" && \
|
|
|
|
|
--base-name "$BASE_NAME"
|
|
|
|
|
|
|
|
|
|
if docker compose -f "$COMPOSE_FILE" exec -T app test -f "${remote_base}.jsonl"; then
|
|
|
|
|
mkdir -p "$INVOICE_ARCHIVE_DIR"
|
|
|
|
|
docker cp "$app_container":"${remote_base}.jsonl" "$INVOICE_ARCHIVE_DIR/"
|
|
|
|
|
docker cp "$app_container":"${remote_base}.csv" "$INVOICE_ARCHIVE_DIR/"
|
|
|
|
|
docker cp "$app_container":"${remote_base}.meta.json" "$INVOICE_ARCHIVE_DIR/"
|
|
|
|
|
else
|
|
|
|
|
echo "Info: Keine Backup-Dateien zum Kopieren gefunden (Datenbank ist leer). Ueberspringe Dateitransfer."
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Hier fangen wir den Exit-Code der gesamten Kette ab
|
|
|
|
|
local backup_status=$?
|
|
|
|
|
|
|
|
|
|
# Dieser Befehl läuft immer (Aufräumen im Container), verändert aber nicht unseren Rückgabetatbestand
|
|
|
|
|
docker compose -f "$COMPOSE_FILE" exec -T app rm -rf "$output_dir"
|
|
|
|
|
|
|
|
|
|
# Jetzt geben wir den echten Status der Backup-Kette zurück
|
|
|
|
|
return $backup_status
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main() {
|
|
|
|
|