# 📂 SSHFS Mount/Unmount Skript Dieses Bash-Skript dient der einfachen Verwaltung eines `sshfs`-Mount-Punktes in das lokale Verzeichnis `/home/service/FILME`. Es prüft automatisch, ob das Verzeichnis bereits belegt ist, und bietet entweder das Mounten eines Servers oder das Unmounten des bestehenden Einhängepunktes an. --- ## 🚀 Funktionen * **Automatisierte Prüfung:** Stellt fest, ob `/home/service/FILME` bereits gemountet ist. * **Interaktive Server-Wahl:** Verwendet das `gum`-Tool, um interaktiv zwischen den Servern **80** und **81** zu wählen (entsprechend den IP-Adressen `100.87.87.80` und `100.87.87.81`). * **SSHFS Mount:** Führt den Mount-Vorgang mit einem spezifischen IdentityFile (`id_80` oder `id_81`) durch. * **Unmount:** Stellt den Mount-Punkt frei, falls er bereits belegt ist. * **Logging:** Verwendet ein externes Logging-Skript (`logger.sh`) zur Protokollierung aller Aktionen. --- ## ⚙️ Voraussetzungen Für die korrekte Ausführung des Skripts sind folgende Abhängigkeiten erforderlich: 1. **Bash:** Eine lauffähige Bash-Umgebung. 2. **`sshfs`:** Muss auf dem System installiert sein. 3. **`gum`:** Das Tool zur interaktiven Eingabe (`gum choose`) muss installiert sein. 4. **SSH Keys:** Die privaten SSH-Schlüssel (`id_80` und `id_81`) müssen im `$HOME`-Verzeichnis des ausführenden Benutzers vorhanden sein. 5. **Logging-Struktur:** * Das Verzeichnis für das Git-Repository muss unter **`/home/service/Gitea`** liegen. * Die Logger-Dateien müssen unter **`/home/service/Gitea/logger/logger.sh`** und **`/home/service/Gitea/logger/Logs/`** verfügbar sein. ## 🛠️ Konfiguration Passen Sie die folgenden Pfade und Variablen bei Bedarf an Ihre Umgebung an: | Variable | Beschreibung | Standardwert im Skript | | :--- | :--- | :--- | | `GIT` | Pfad zum Git-Hauptverzeichnis (enthält den Logger). | `/home/service/Gitea` | | **Mountpoint** | Das lokale Verzeichnis, in das gemountet wird. | `/home/service/FILME` | | **Remote-User** | Der SSH-Benutzername auf den Servern. | `alf` | | **Remote-Pfad** | Der freizugebende Pfad auf den Servern. | `/srv/` | ## 💡 Funktionsweise (Ablauflogik) 1. **Initialisierung:** Lädt die `logger.sh` und startet die Protokollierung. 2. **Mount-Prüfung:** Führt `mount | grep "FILME"` aus. Der Rückgabewert (`$?`) wird in der Variablen `$MOUNTET` gespeichert: * **Fall 1 (`$MOUNTET` = 1):** Das Verzeichnis `/home/service/FILME` ist frei. * Der Benutzer wählt interaktiv einen Server (80 oder 81) über `gum choose`. * `sshfs` mountet das Remote-Verzeichnis (`alf@100.87.87.$SERVER:/srv/`) in den lokalen Pfad. * **Fall 2 (`$MOUNTET` = 0):** Das Verzeichnis ist bereits belegt. * Das Skript führt automatisch ein `umount /home/service/FILME` aus. * **Anderer Fall:** Eine Fehlermeldung wird protokolliert. 3. **Ende:** Die Protokollierung wird beendet.