Feat: Fügt den check auf WebDAV creds wieder hinzu.

This commit is contained in:
DragonSlayer_14 2025-03-20 14:00:41 +01:00
parent b9b3a5c077
commit 54258e552e

View File

@ -16,6 +16,8 @@ create_lock
# === KONSTANTEN === # === KONSTANTEN ===
MAX_RESTARTS=10 # Maximale Anzahl an Neustarts MAX_RESTARTS=10 # Maximale Anzahl an Neustarts
RESTART_COUNT_FILE="/tmp/hidrive_restart_count" # Datei zur Speicherung des Neustart-Zählers RESTART_COUNT_FILE="/tmp/hidrive_restart_count" # Datei zur Speicherung des Neustart-Zählers
WEBDAV_CREDENTIALS="/etc/davfs2/secrets" # WebDAV-Passwortdatei
MOUNT_POINT="/media/HiDrive" # Gemeinsamer Einhängepunkt für NFS/WebDAV
# === Neustart-Zähler initialisieren === # === Neustart-Zähler initialisieren ===
if [[ ! -f "$RESTART_COUNT_FILE" ]]; then if [[ ! -f "$RESTART_COUNT_FILE" ]]; then
@ -60,23 +62,27 @@ WEBDAV_URL="$1"
DEVICE_MAC="${2:-}" DEVICE_MAC="${2:-}"
NFS_PATH="${3:-}" NFS_PATH="${3:-}"
# === KONFIGURATION ===
MOUNT_POINT="/media/HiDrive" # Gemeinsamer Einhängepunkt für NFS/WebDAV
WEBDAV_CREDENTIALS="/etc/davfs2/secrets" # WebDAV-Passwortdatei
# === FUNKTIONEN === # === FUNKTIONEN ===
check_nfs_installed() { check_nfs_installed() {
if ! command -v mount.nfs &>/dev/null; then command -v mount.nfs &>/dev/null || {
log "Fehler: NFS-Client nicht installiert! Bitte installiere es mit: sudo apt install nfs-common" log "Fehler: NFS-Client nicht installiert! Bitte installiere es mit: sudo apt install nfs-common"
return 1 return 1
fi }
return 0 return 0
} }
check_webdav_installed() { check_webdav_installed() {
if ! command -v mount.davfs &>/dev/null; then command -v mount.davfs &>/dev/null || {
log "Fehler: WebDAV-Client nicht installiert! Bitte installiere es mit: sudo apt install davfs2" log "Fehler: WebDAV-Client nicht installiert! Bitte installiere es mit: sudo apt install davfs2"
return 1 return 1
}
return 0
}
check_webdav_credentials() {
if [[ ! -f "$WEBDAV_CREDENTIALS" ]]; then
log "Fehler: WebDAV-Zugangsdaten fehlen! Bitte erstelle $WEBDAV_CREDENTIALS mit den richtigen Anmeldedaten."
return 1
fi fi
return 0 return 0
} }
@ -102,36 +108,25 @@ restart_script() {
unmount() { unmount() {
local mount_point="$1" local mount_point="$1"
log "Unmounting $mount_point..." log "Unmounting $mount_point..."
if umount "$mount_point"; then umount "$mount_point" && log "Unmount erfolgreich." || log "Fehler beim Unmounten von $mount_point."
log "Unmount erfolgreich."
else
log "Fehler beim Unmounten von $mount_point."
return 1
fi
} }
mount_nfs() { mount_nfs() {
log "Versuche, NFS-Dateisystem von $NFS_SERVER einzubinden..." log "Versuche, NFS-Dateisystem von $NFS_SERVER einzubinden..."
mkdir -p "$MOUNT_POINT" mkdir -p "$MOUNT_POINT"
if mount -t nfs "$NFS_SERVER" "$MOUNT_POINT"; then mount -t nfs "$NFS_SERVER" "$MOUNT_POINT" && log "NFS erfolgreich unter $MOUNT_POINT eingebunden!" || {
log "NFS erfolgreich unter $MOUNT_POINT eingebunden!"
return 0
else
log "Fehler beim Einbinden von NFS!" log "Fehler beim Einbinden von NFS!"
return 1 return 1
fi }
} }
mount_webdav() { mount_webdav() {
log "Versuche, WebDAV-Dateisystem von $WEBDAV_URL einzubinden..." log "Versuche, WebDAV-Dateisystem von $WEBDAV_URL einzubinden..."
mkdir -p "$MOUNT_POINT" mkdir -p "$MOUNT_POINT"
if mount -t davfs "$WEBDAV_URL" "$MOUNT_POINT"; then mount -t davfs "$WEBDAV_URL" "$MOUNT_POINT" && log "WebDAV erfolgreich unter $MOUNT_POINT eingebunden!" || {
log "WebDAV erfolgreich unter $MOUNT_POINT eingebunden!"
return 0
else
log "Fehler beim Einbinden von WebDAV!" log "Fehler beim Einbinden von WebDAV!"
return 1 return 1
fi }
} }
# === HAUPTLOGIK === # === HAUPTLOGIK ===
@ -152,12 +147,8 @@ if [[ -n "$DEVICE_MAC" && -n "$NFS_PATH" ]]; then
NFS_SERVER="$DEVICE_IP:$NFS_PATH" NFS_SERVER="$DEVICE_IP:$NFS_PATH"
if ! is_nfs_mounted "$MOUNT_POINT"; then if ! is_nfs_mounted "$MOUNT_POINT"; then
log "NFS ist nicht gemountet. Wechsel zu NFS..." log "NFS ist nicht gemountet. Wechsel zu NFS..."
if is_mounted "$MOUNT_POINT"; then is_mounted "$MOUNT_POINT" && unmount "$MOUNT_POINT"
unmount "$MOUNT_POINT" check_nfs_installed && mount_nfs || restart_script "$@"
fi
if check_nfs_installed; then
mount_nfs || restart_script "$@"
fi
else else
log "NFS ist bereits gemountet." log "NFS ist bereits gemountet."
fi fi
@ -165,12 +156,8 @@ if [[ -n "$DEVICE_MAC" && -n "$NFS_PATH" ]]; then
log "Gerät ist nicht erreichbar. Prüfe WebDAV-Mount..." log "Gerät ist nicht erreichbar. Prüfe WebDAV-Mount..."
if ! is_webdav_mounted "$MOUNT_POINT"; then if ! is_webdav_mounted "$MOUNT_POINT"; then
log "WebDAV ist nicht gemountet. Wechsel zu WebDAV..." log "WebDAV ist nicht gemountet. Wechsel zu WebDAV..."
if is_mounted "$MOUNT_POINT"; then is_mounted "$MOUNT_POINT" && unmount "$MOUNT_POINT"
unmount "$MOUNT_POINT" check_webdav_installed && check_webdav_credentials && mount_webdav || restart_script "$@"
fi
if check_webdav_installed; then
mount_webdav || restart_script "$@"
fi
else else
log "WebDAV ist bereits gemountet." log "WebDAV ist bereits gemountet."
fi fi
@ -179,12 +166,8 @@ else
log "Kein Gerät angegeben. Direktes Einbinden von WebDAV..." log "Kein Gerät angegeben. Direktes Einbinden von WebDAV..."
if ! is_webdav_mounted "$MOUNT_POINT"; then if ! is_webdav_mounted "$MOUNT_POINT"; then
log "WebDAV ist nicht gemountet. Einbinden..." log "WebDAV ist nicht gemountet. Einbinden..."
if is_mounted "$MOUNT_POINT"; then is_mounted "$MOUNT_POINT" && unmount "$MOUNT_POINT"
unmount "$MOUNT_POINT" check_webdav_installed && check_webdav_credentials && mount_webdav || restart_script "$@"
fi
if check_webdav_installed; then
mount_webdav || restart_script "$@"
fi
else else
log "WebDAV ist bereits gemountet." log "WebDAV ist bereits gemountet."
fi fi