2025-05-29 23:58:55 +02:00
2025-05-29 23:58:55 +02:00
2025-05-29 23:46:04 +02:00

💡 Was macht das?

    Wenn kein Argument übergeben wird, läuft das Skript wie gewohnt durch (main).

    Wenn ein Funktionsname übergeben wird, wird nur diese Funktion mit optionalen Argumenten ausgeführt.

🔄 Beispielaufrufe

# Führt das ganze Skript aus (wie bisher)
./miyagi_backup.sh -c /etc/miyagi.conf

# Führt nur Updates aus
./miyagi_backup.sh run_updates

# Nur das Backup starten
./miyagi_backup.sh run_pbs_backup

# Nur Konfiguration schreiben
./miyagi_backup.sh write_zsync_config

🧱 Optional: Hilfe-Befehl

Füge am Anfang noch das hinzu:

if [[ "${1:-}" == "help" ]]; then
    echo "Verfügbare Funktionen:"
    declare -F | awk '{print " - " $3}'
    exit 0
fi

Dann kannst du z.B. aufrufen:

./miyagi_backup.sh help

Und bekommst alle verfügbaren Funktionsnamen.
📌 Hinweis

Funktionen wie run_pbs_backup brauchen Variablen aus der Config. Du kannst sicherstellen, dass source "$CONFIG_FILE" immer ausgeführt wird, indem du das nicht in main, sondern außerhalb (oben) stehen lässt - so wie im überarbeiteten Skript oben.
✅ Fazit

Durch den Wechsel auf ein solches „Funktions-Router“-Muster kannst du dein Skript:

    modular testen

    gezielt einsetzen (z.B. nur Snapshot, nur Update)

    einfacher debuggen

    cron- oder CI-kompatibel machen
S
Description
No description provided
Readme 106 KiB
v2.0 Latest
2025-07-25 22:32:41 +02:00
Languages
Shell 100%