🎉 Feat/DB: Enhanced database logging & WAL management for improved stability and performance in backend/database/myp.db-wal

This commit is contained in:
2025-06-03 13:23:58 +02:00
parent b29219ce4c
commit 45547a8da6
6 changed files with 138 additions and 56 deletions

View File

@@ -225,6 +225,65 @@ show_error_summary() {
fi
echo -e "${CYAN}=================================================================${NC}"
# Erstelle automatische Log-Zusammenfassung
create_log_summary
}
# Automatische Log-Zusammenfassung erstellen
create_log_summary() {
local summary_file="/var/log/myp-install-summary.txt"
{
echo "================================================================="
echo "MYP INSTALLATION ZUSAMMENFASSUNG"
echo "Erstellt: $(date '+%Y-%m-%d %H:%M:%S')"
echo "================================================================="
echo ""
echo "STATISTIKEN:"
echo "- Fehler: $ERROR_COUNT"
echo "- Warnungen: $WARNING_COUNT"
echo "- Script Version: $APP_VERSION"
echo "- System: $(uname -a 2>/dev/null || echo 'Unbekannt')"
echo "- Hostname: $(hostname 2>/dev/null || echo 'Unbekannt')"
echo "- User: $(whoami 2>/dev/null || echo 'Unbekannt')"
echo ""
echo "SYSTEM-INFORMATIONEN:"
echo "- Festplattenspeicher: $(df -h / | tail -1 2>/dev/null || echo 'Nicht verfügbar')"
echo "- Arbeitsspeicher: $(free -m | grep '^Mem:' | awk '{print $3"/"$2" MB"}' 2>/dev/null || echo 'Nicht verfügbar')"
echo "- Python Version: $(python3 --version 2>&1 || echo 'Nicht installiert')"
echo "- Node.js Version: $(node --version 2>&1 || echo 'Nicht installiert')"
echo ""
echo "LOG-DATEIEN:"
echo "- Vollständiges Log: $INSTALL_LOG"
echo "- Fehler-Log: $ERROR_LOG"
echo "- Warnungs-Log: $WARNING_LOG"
echo "- Debug-Log: $DEBUG_LOG"
echo ""
if [ $ERROR_COUNT -gt 0 ] && [ -f "$ERROR_LOG" ] && [ -s "$ERROR_LOG" ]; then
echo "FEHLER-ÜBERSICHT:"
echo "================="
tail -n 50 "$ERROR_LOG"
echo ""
fi
if [ $WARNING_COUNT -gt 0 ] && [ -f "$WARNING_LOG" ] && [ -s "$WARNING_LOG" ]; then
echo "WARNUNGS-ÜBERSICHT:"
echo "==================="
tail -n 30 "$WARNING_LOG"
echo ""
fi
echo "INSTALLATION ABGESCHLOSSEN: $(date '+%Y-%m-%d %H:%M:%S')"
echo "================================================================="
} > "$summary_file"
# Berechtigung für Zusammenfassungs-Datei setzen
chmod 644 "$summary_file" 2>/dev/null || true
debug "Log-Zusammenfassung erstellt: $summary_file"
}
# =========================== RETRY-MECHANISMEN ===========================
@@ -241,10 +300,30 @@ retry_command() {
attempts=$((attempts + 1))
if [ $attempts -lt $MAX_RETRIES ]; then
warning "$description fehlgeschlagen (Versuch $attempts/$MAX_RETRIES) - wiederhole in ${RETRY_DELAY}s..."
# Debug-Information für jeden fehlgeschlagenen Versuch
debug "Retry-Versuch für '$description': $attempts/$MAX_RETRIES"
debug "Fehlgeschlagener Befehl: $cmd"
debug "Aktuelles Arbeitsverzeichnis: $(pwd)"
debug "Verfügbarer Speicher: $(free -m | grep '^Mem:' | awk '{print $3"/"$2" MB"}' 2>/dev/null || echo 'Unbekannt')"
debug "Exit-Code des letzten Befehls: $?"
sleep $RETRY_DELAY
fi
done
# Detaillierte Fehler-Information vor dem Beenden
debug "CRITICAL: Retry-Mechanismus erschöpft für '$description'"
debug "Letzter Befehl: $cmd"
debug "Versuche: $MAX_RETRIES"
debug "System-Status zum Zeitpunkt des kritischen Fehlers:"
debug " - Disk Usage: $(df -h / | tail -1 2>/dev/null || echo 'Nicht verfügbar')"
debug " - Memory Usage: $(free -m 2>/dev/null || echo 'Nicht verfügbar')"
debug " - Load Average: $(uptime 2>/dev/null | awk -F'load average:' '{print $2}' || echo 'Nicht verfügbar')"
debug " - Network Status: $(ip addr show 2>/dev/null | grep 'inet ' | grep -v '127.0.0.1' || echo 'Nicht verfügbar')"
debug " - APT Status: $(ps aux | grep -i apt | grep -v grep || echo 'Keine APT-Prozesse')"
debug " - Python Status: $(python3 --version 2>&1 || echo 'Python nicht verfügbar')"
error "$description nach $MAX_RETRIES Versuchen fehlgeschlagen!"
}
@@ -3033,6 +3112,7 @@ main() {
[ $ERROR_COUNT -gt 0 ] && echo -e " 🚨 Fehler-Log: $ERROR_LOG"
[ $WARNING_COUNT -gt 0 ] && echo -e " ⚠️ Warnungs-Log: $WARNING_LOG"
echo -e " 🔍 Debug-Log: $DEBUG_LOG"
echo -e " 📊 Zusammenfassung: /var/log/myp-install-summary.txt"
echo ""
echo -n "Drücken Sie Enter um fortzufahren..."
read -r
@@ -3045,6 +3125,7 @@ main() {
[ $ERROR_COUNT -gt 0 ] && echo -e " 🚨 Fehler-Log: $ERROR_LOG"
[ $WARNING_COUNT -gt 0 ] && echo -e " ⚠️ Warnungs-Log: $WARNING_LOG"
echo -e " 🔍 Debug-Log: $DEBUG_LOG"
echo -e " 📊 Zusammenfassung: /var/log/myp-install-summary.txt"
echo ""
echo -n "Drücken Sie Enter um fortzufahren..."
read -r
@@ -3058,6 +3139,7 @@ main() {
[ -f "$ERROR_LOG" ] && echo -e " 🚨 Fehler-Log: $ERROR_LOG"
[ -f "$WARNING_LOG" ] && echo -e " ⚠️ Warnungs-Log: $WARNING_LOG"
[ -f "$DEBUG_LOG" ] && echo -e " 🔍 Debug-Log: $DEBUG_LOG"
[ -f "/var/log/myp-install-summary.txt" ] && echo -e " 📊 Zusammenfassung: /var/log/myp-install-summary.txt"
fi
exit 0
;;