Feat: Fügt den check auf WebDAV creds wieder hinzu.
This commit is contained in:
parent
b9b3a5c077
commit
54258e552e
@ -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
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user