# SSHFS-Mount-Skript mit Logging Dieses Bash-Skript ermöglicht das komfortable Ein- und Aushängen eines entfernten Dateisystems über **SSHFS**. Es nutzt **Gum** zur interaktiven Auswahl und ein eigenes **Logging-System**, um alle Aktionen nachvollziehbar zu protokollieren. --- ## 🧩 Funktionsweise 1. **Initialisierung** Das Skript lädt ein Logging-Modul (`logger.sh`) aus dem Gitea-Repository und startet das Logging in der Datei `"$GIT/logger/Logs/sshfs.log"`. 2. **Prüfung des Mount-Punkts** Es überprüft, ob bereits etwas auf dem angegebenen Mount-Punkt (`$MOUNTPUNKT`) gemountet ist. 3. **Interaktive Auswahl** - Falls **kein Mount aktiv** ist, wird der Benutzer per `gum choose` aufgefordert, einen Server zu wählen (z. B. `80` oder `81`). - Danach wird über `sshfs` eine Verbindung hergestellt: ```bash sshfs -o IdentityFile="$HOME/id_$SERVER" -p2222 $USER@$IPWURZEL.$SERVER:/srv/ $MOUNTPUNKT ``` - Falls **bereits ein Mount aktiv** ist, fragt das Skript, ob dieser gelöst werden soll (`ja` / `nein`). 4. **Logging** Jeder Schritt wird protokolliert. Fehlermeldungen und Rückgabewerte werden ebenfalls erfasst. --- ## ⚙️ Voraussetzungen * **SSHFS** installiert ```bash sudo apt install sshfs * **Gum** (für interaktive Auswahlmenüs) ```bash sudo apt install gum # oder: go install github.com/charmbracelet/gum@latest ``` * **Logger-Modul** Das Skript erwartet ein Logging-Modul unter: ``` $GIT/logger/logger.sh ``` Dieses Modul muss die Funktionen `log_init`, `log_start`, `log_info`, `log_error` und `log_end` bereitstellen. --- ## 🧠 Konfiguration Vor der Nutzung sollten die folgenden Variablen angepasst werden: ```bash GIT="/home/service/Gitea" # Pfad zum Gitea-Repo USER="alf" # SSH-Benutzername IPWURZEL="100.87.87" # Basis der IP-Adresse MOUNTPUNKT="/home/service/FILME" # Lokaler Mount-Punkt SERVERWAHL="80 81" # Servernummern für die Auswahl ``` --- ## 🚀 Verwendung Starte das Skript manuell: ```bash bash sshfs_mount.sh ``` Beispielablauf: ``` [INFO] Prüfen, ob schon etwas auf /home/service/FILME gemountet ist [INFO] Verzeichnis ist frei. Bitte Server wählen... > 80 [INFO] Gewählter Server: 80 [INFO] Mount-Vorgang gestartet... ``` Wenn bereits ein Mount besteht: ``` [INFO] Verzeichnis ist belegt! Wird gelöst… ``` --- ## 🪵 Log-Dateien Alle Logeinträge werden unter folgendem Pfad gespeichert: ``` $GIT/logger/Logs/sshfs.log ``` --- ## 🧰 Beispiel für `logger.sh` Ein einfaches Beispielmodul: ```bash log_init() { LOGFILE="$1"; echo "=== $(date) ===" >> "$LOGFILE"; } log_start() { echo "[START] $(date)" >> "$LOGFILE"; } log_info() { echo "[INFO] $1" >> "$LOGFILE"; } log_error() { echo "[ERROR] $1" >> "$LOGFILE"; } log_end() { echo "[END] $(date)" >> "$LOGFILE"; echo >> "$LOGFILE"; } ``` --- ## 📄 Lizenz Dieses Skript kann frei verwendet, angepasst und erweitert werden. Eine Nennung des ursprünglichen Autors (alf) wird begrüßt. --- ## 🧾 Autor **Alf Oberkoetter** [trevor1969 auf GitHub](https://github.com/trevor1969) ---