Files
sshfser/README.md
2025-11-09 10:03:51 +00:00

2.8 KiB

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