README.md hinzugefügt

This commit is contained in:
alf
2025-11-09 10:03:51 +00:00
commit 3b0c49eb9e

50
README.md Normal file
View File

@ -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.