Feat: Passt das Skript an, dass je nach Verfügbarkeit das Dateisystem umgemounted wird.
This commit is contained in:
parent
4c85a02fe0
commit
8cb964b666
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
# === IMPORTS ===
|
# === IMPORTS ===
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
source "$SCRIPT_DIR/../Utility/IsWebdavMounted.sh"
|
|
||||||
source "$SCRIPT_DIR/../Utility/WakeOnLan.sh"
|
source "$SCRIPT_DIR/../Utility/WakeOnLan.sh"
|
||||||
source "$SCRIPT_DIR/../Utility/IsMounted.sh"
|
source "$SCRIPT_DIR/../Utility/IsMounted.sh"
|
||||||
source "$SCRIPT_DIR/../Utility/Log.sh"
|
source "$SCRIPT_DIR/../Utility/Log.sh"
|
||||||
@ -85,14 +84,42 @@ restart_script() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# === HAUPTLOGIK ===
|
unmount() {
|
||||||
|
local mount_point="$1"
|
||||||
|
log "Unmounting $mount_point..."
|
||||||
|
if umount "$mount_point"; then
|
||||||
|
log "Unmount erfolgreich."
|
||||||
|
else
|
||||||
|
log "Fehler beim Unmounten von $mount_point."
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Prüfen, ob das Dateisystem bereits gemountet ist
|
mount_nfs() {
|
||||||
if is_mounted "$MOUNT_POINT"; then
|
log "Versuche, NFS-Dateisystem von $NFS_SERVER einzubinden..."
|
||||||
log "Das Dateisystem ist bereits gemountet unter $MOUNT_POINT."
|
mkdir -p "$MOUNT_POINT"
|
||||||
rm -f "$RESTART_COUNT_FILE" # Neustart-Zähler zurücksetzen
|
if mount -t nfs "$NFS_SERVER" "$MOUNT_POINT"; then
|
||||||
exit 0 # Skript beenden, da kein weiteres Mounten erforderlich ist
|
log "NFS erfolgreich unter $MOUNT_POINT eingebunden!"
|
||||||
fi
|
return 0
|
||||||
|
else
|
||||||
|
log "Fehler beim Einbinden von NFS!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_webdav() {
|
||||||
|
log "Versuche, WebDAV-Dateisystem von $WEBDAV_URL einzubinden..."
|
||||||
|
mkdir -p "$MOUNT_POINT"
|
||||||
|
if mount -t davfs "$WEBDAV_URL" "$MOUNT_POINT"; then
|
||||||
|
log "WebDAV erfolgreich unter $MOUNT_POINT eingebunden!"
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
log "Fehler beim Einbinden von WebDAV!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# === HAUPTLOGIK ===
|
||||||
|
|
||||||
# Prüfen, ob NFS oder WebDAV installiert ist
|
# Prüfen, ob NFS oder WebDAV installiert ist
|
||||||
if ! check_nfs_installed && ! check_webdav_installed; then
|
if ! check_nfs_installed && ! check_webdav_installed; then
|
||||||
@ -100,20 +127,35 @@ if ! check_nfs_installed && ! check_webdav_installed; then
|
|||||||
restart_script "$@"
|
restart_script "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Wenn nicht gemountet, mit der Hauptlogik fortfahren
|
# Gerät erreichbar?
|
||||||
log "Starte Wake-on-LAN-Prozess..."
|
|
||||||
DEVICE_IP=$(wake_device "$DEVICE_MAC")
|
DEVICE_IP=$(wake_device "$DEVICE_MAC")
|
||||||
|
|
||||||
if [[ -n "$DEVICE_IP" ]]; then
|
if [[ -n "$DEVICE_IP" ]]; then
|
||||||
log "Gerät ist unter $DEVICE_IP erreichbar, versuche NFS-Mount..."
|
log "Gerät ist unter $DEVICE_IP erreichbar. Prüfe NFS-Mount..."
|
||||||
NFS_SERVER="$DEVICE_IP:$NFS_PATH" # Dynamische NFS-Server-Adresse setzen
|
NFS_SERVER="$DEVICE_IP:$NFS_PATH"
|
||||||
|
if ! is_nfs_mounted "$MOUNT_POINT"; then
|
||||||
|
log "NFS ist nicht gemountet. Wechsel zu NFS..."
|
||||||
|
if is_mounted "$MOUNT_POINT"; then
|
||||||
|
unmount "$MOUNT_POINT"
|
||||||
|
fi
|
||||||
if check_nfs_installed; then
|
if check_nfs_installed; then
|
||||||
mount_nfs
|
mount_nfs || restart_script "$@"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log "NFS ist bereits gemountet."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
log "Gerät konnte nicht geweckt werden, versuche WebDAV-Mount..."
|
log "Gerät ist nicht erreichbar. Prüfe WebDAV-Mount..."
|
||||||
|
if ! is_webdav_mounted "$MOUNT_POINT"; then
|
||||||
|
log "WebDAV ist nicht gemountet. Wechsel zu WebDAV..."
|
||||||
|
if is_mounted "$MOUNT_POINT"; then
|
||||||
|
unmount "$MOUNT_POINT"
|
||||||
|
fi
|
||||||
if check_webdav_installed && check_webdav_credentials; then
|
if check_webdav_installed && check_webdav_credentials; then
|
||||||
mount_webdav
|
mount_webdav || restart_script "$@"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log "WebDAV ist bereits gemountet."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user