From 3b0c49eb9e85b65a16089a5c46eb29a08a03e7ff Mon Sep 17 00:00:00 2001 From: alf Date: Sun, 9 Nov 2025 10:03:51 +0000 Subject: [PATCH] =?UTF-8?q?README.md=20hinzugef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..2a785c1 --- /dev/null +++ b/README.md @@ -0,0 +1,50 @@ +# 📂 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.