2.8 KiB
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/FILMEbereits gemountet ist. - Interaktive Server-Wahl: Verwendet das
gum-Tool, um interaktiv zwischen den Servern 80 und 81 zu wählen (entsprechend den IP-Adressen100.87.87.80und100.87.87.81). - SSHFS Mount: Führt den Mount-Vorgang mit einem spezifischen IdentityFile (
id_80oderid_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:
- Bash: Eine lauffähige Bash-Umgebung.
sshfs: Muss auf dem System installiert sein.gum: Das Tool zur interaktiven Eingabe (gum choose) muss installiert sein.- SSH Keys: Die privaten SSH-Schlüssel (
id_80undid_81) müssen im$HOME-Verzeichnis des ausführenden Benutzers vorhanden sein. - Logging-Struktur:
- Das Verzeichnis für das Git-Repository muss unter
/home/service/Gitealiegen. - Die Logger-Dateien müssen unter
/home/service/Gitea/logger/logger.shund/home/service/Gitea/logger/Logs/verfügbar sein.
- Das Verzeichnis für das Git-Repository muss unter
🛠️ 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)
- Initialisierung: Lädt die
logger.shund startet die Protokollierung. - Mount-Prüfung: Führt
mount | grep "FILME"aus. Der Rückgabewert ($?) wird in der Variablen$MOUNTETgespeichert:- Fall 1 (
$MOUNTET= 1): Das Verzeichnis/home/service/FILMEist frei.- Der Benutzer wählt interaktiv einen Server (80 oder 81) über
gum choose. sshfsmountet das Remote-Verzeichnis (alf@100.87.87.$SERVER:/srv/) in den lokalen Pfad.
- Der Benutzer wählt interaktiv einen Server (80 oder 81) über
- Fall 2 (
$MOUNTET= 0): Das Verzeichnis ist bereits belegt.- Das Skript führt automatisch ein
umount /home/service/FILMEaus.
- Das Skript führt automatisch ein
- Anderer Fall: Eine Fehlermeldung wird protokolliert.
- Fall 1 (
- Ende: Die Protokollierung wird beendet.