Feat: Fügt ein Skript zum Mounten von HiDrive hinzu
This commit is contained in:
parent
86cbe76d0b
commit
d8b689b8f9
95
Mount/HiDrive.sh
Executable file
95
Mount/HiDrive.sh
Executable file
@ -0,0 +1,95 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# === IMPORTS ===
|
||||||
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
source "$SCRIPT_DIR/../Utility/WakeOnLan.sh"
|
||||||
|
source "$SCRIPT_DIR/../Utility/Log.sh"
|
||||||
|
|
||||||
|
# === ROOT-PRÜFUNG ===
|
||||||
|
if [[ $EUID -ne 0 ]]; then
|
||||||
|
echo "Dieses Skript muss als root ausgeführt werden! Bitte starte es mit sudo."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# === PARAMETER-ÜBERPRÜFUNG ===
|
||||||
|
if [[ "$#" -ne 4 ]]; then
|
||||||
|
echo "Benutzung: $0 <DEVICE_MAC> <DEVICE_IP> <WEBDAV_URL> <NFS_PATH>"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
DEVICE_MAC="$1"
|
||||||
|
DEVICE_IP="$2"
|
||||||
|
WEBDAV_URL="$3"
|
||||||
|
NFS_PATH="$4"
|
||||||
|
|
||||||
|
# === KONFIGURATION ===
|
||||||
|
MOUNT_POINT="/media/HiDrive" # Gemeinsamer Einhängepunkt für NFS/WebDAV
|
||||||
|
NFS_SERVER="$DEVICE_IP:$NFS_PATH" # Dynamische NFS-Server-Adresse
|
||||||
|
WEBDAV_CREDENTIALS="/etc/davfs2/secrets" # WebDAV-Passwortdatei
|
||||||
|
|
||||||
|
# === FUNKTIONEN ===
|
||||||
|
check_nfs_installed() {
|
||||||
|
if ! command -v mount.nfs &>/dev/null; then
|
||||||
|
log "Fehler: NFS-Client nicht installiert! Bitte installiere es mit: sudo apt install nfs-common"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
check_webdav_installed() {
|
||||||
|
if ! command -v mount.davfs &>/dev/null; then
|
||||||
|
log "Fehler: WebDAV-Client nicht installiert! Bitte installiere es mit: sudo apt install davfs2"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
check_webdav_credentials() {
|
||||||
|
if [[ ! -f "$WEBDAV_CREDENTIALS" ]]; then
|
||||||
|
log "Fehler: WebDAV-Passwortdatei nicht gefunden unter $WEBDAV_CREDENTIALS!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
if ! grep -q "$MOUNT_POINT" "$WEBDAV_CREDENTIALS"; then
|
||||||
|
log "Fehler: Keine Zugangsdaten für den Mountpoint $MOUNT_POINT in $WEBDAV_CREDENTIALS gefunden!"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
mount_nfs() {
|
||||||
|
log "Versuche, NFS-Dateisystem von $NFS_SERVER einzubinden..."
|
||||||
|
mkdir -p "$MOUNT_POINT"
|
||||||
|
if mount -t nfs "$NFS_SERVER" "$MOUNT_POINT"; then
|
||||||
|
log "NFS erfolgreich unter $MOUNT_POINT eingebunden!"
|
||||||
|
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 ===
|
||||||
|
log "Starte Wake-on-LAN-Prozess..."
|
||||||
|
if wake_device "$DEVICE_MAC" "$DEVICE_IP"; then
|
||||||
|
log "Gerät ist erreichbar, versuche NFS-Mount..."
|
||||||
|
if check_nfs_installed; then
|
||||||
|
mount_nfs
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
log "Gerät konnte nicht geweckt werden, versuche WebDAV-Mount..."
|
||||||
|
if check_webdav_installed && check_webdav_credentials; then
|
||||||
|
mount_webdav
|
||||||
|
fi
|
||||||
|
fi
|
||||||
Loading…
x
Reference in New Issue
Block a user