Feat: Passt das Skript an, dass je nach Verfügbarkeit das Dateisystem umgemounted wird.

This commit is contained in:
DragonSlayer_14 2025-03-08 11:19:39 +01:00
parent 4c85a02fe0
commit 8cb964b666

View File

@ -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 check_nfs_installed; then if ! is_nfs_mounted "$MOUNT_POINT"; then
mount_nfs log "NFS ist nicht gemountet. Wechsel zu NFS..."
if is_mounted "$MOUNT_POINT"; then
unmount "$MOUNT_POINT"
fi
if check_nfs_installed; then
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 check_webdav_installed && check_webdav_credentials; then if ! is_webdav_mounted "$MOUNT_POINT"; then
mount_webdav 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
mount_webdav || restart_script "$@"
fi
else
log "WebDAV ist bereits gemountet."
fi fi
fi fi