ADD: added hard drive mount script and nfs server script

This commit is contained in:
henry
2025-04-25 16:46:36 +02:00
commit 29ac3974b7
4 changed files with 181 additions and 0 deletions

27
nfs/client.sh Executable file
View File

@@ -0,0 +1,27 @@
#!/bin/bash
# ───── Interaktive Abfragen ─────
read -p "🔌 IP-Adresse des NFS-Servers: " SERVER_IP
read -p "📁 Remote-Pfad auf dem Server (z.B. /srv/nfs/share): " REMOTE_PATH
read -p "📂 Lokaler Mountpunkt auf diesem Client (z.B. /mnt/nfs_share): " LOCAL_MOUNT
# ───── NFS-Client installieren (für Debian/Ubuntu) ─────
echo "📦 Installiere NFS-Client (falls nötig)..."
apt update && apt install -y nfs-common
# ───── Lokales Verzeichnis vorbereiten ─────
if [ ! -d "$LOCAL_MOUNT" ]; then
echo "📁 Erstelle lokalen Mountpunkt: $LOCAL_MOUNT"
mkdir -p "$LOCAL_MOUNT"
fi
# ───── Mount-Versuch ─────
echo "🔗 Versuche, $SERVER_IP:$REMOTE_PATH nach $LOCAL_MOUNT zu mounten..."
mount -t nfs "$SERVER_IP:$REMOTE_PATH" "$LOCAL_MOUNT"
# ───── Erfolg prüfen ─────
if mountpoint -q "$LOCAL_MOUNT"; then
echo "✅ Share erfolgreich gemountet unter $LOCAL_MOUNT"
else
echo "❌ Mountvorgang fehlgeschlagen."
fi

52
nfs/nfsSlowData.sh Executable file
View File

@@ -0,0 +1,52 @@
#!/bin/bash
# ==== Standardwerte direkt im Skript definieren ====
DEFAULT_EXPORT_PATH="/slowData"
DEFAULT_SUBNET="192.168.178.0/24"
# ==== Übergabeparameter auswerten ====
while [[ $# -gt 0 ]]; do
case "$1" in
--path)
EXPORT_PATH="$2"
shift 2
;;
--subnet)
SUBNET="$2"
shift 2
;;
*)
echo "❌ Unbekannter Parameter: $1"
exit 1
;;
esac
done
# ==== Fallback auf Standardwerte ====
EXPORT_PATH="${EXPORT_PATH:-$DEFAULT_EXPORT_PATH}"
SUBNET="${SUBNET:-$DEFAULT_SUBNET}"
# ==== Interaktive Nachfrage, falls dennoch leer ====
[[ -z "$EXPORT_PATH" ]] && read -rp "Pfad des freizugebenden Ordners: " EXPORT_PATH
[[ -z "$SUBNET" ]] && read -rp "Subnetz (z.B. 192.168.178.0/24): " SUBNET
# ==== Ordner vorbereiten ====
sudo mkdir -p "$EXPORT_PATH"
sudo chmod 777 "$EXPORT_PATH"
# ==== Export konfigurieren ====
EXPORT_LINE="$EXPORT_PATH $SUBNET(rw,sync,no_subtree_check,no_root_squash)"
EXPORTS_FILE="/etc/exports"
if ! grep -Fxq "$EXPORT_LINE" "$EXPORTS_FILE"; then
echo "$EXPORT_LINE" | sudo tee -a "$EXPORTS_FILE"
echo "✅ Export wurde hinzugefügt."
else
echo " Export existiert bereits."
fi
# ==== NFS-Dienst neu laden ====
sudo exportfs -ra
sudo systemctl restart nfs-server
echo "✅ NFS-Share aktiv: $EXPORT_PATH$SUBNET (777-Rechte)"

37
nfs/server.sh Executable file
View File

@@ -0,0 +1,37 @@
#!/bin/bash
echo "📦 NFS Server Setup für globalen Share"
# ───── Eingabe: Freizugebender Ordner ─────
read -p "📁 Welcher Ordner soll für ALLE Nutzer freigegeben werden? (z.B. /srv/nfs/global): " NFS_DIR
# ───── Verzeichnis vorbereiten ─────
if [ ! -d "$NFS_DIR" ]; then
echo "📁 Erstelle Verzeichnis $NFS_DIR..."
mkdir -p "$NFS_DIR"
fi
# ───── Zugriffsrechte setzen ─────
chown nobody:nogroup "$NFS_DIR"
chmod 777 "$NFS_DIR" # Jeder kann lesen, schreiben und ausführen
# ───── Lokales Subnetz erkennen ─────
LOCAL_SUBNET=$(ip route | awk '/src/ {print $1; exit}')
# ───── /etc/exports vorbereiten ─────
EXPORT_LINE="$NFS_DIR $LOCAL_SUBNET(rw,sync,no_subtree_check,no_root_squash)"
if ! grep -qF "$EXPORT_LINE" /etc/exports; then
echo "$EXPORT_LINE" >> /etc/exports
echo "✅ Export hinzugefügt: $EXPORT_LINE"
else
echo " Export existiert bereits."
fi
# ───── NFS-Dienste neu laden ─────
exportfs -ra
systemctl restart nfs-kernel-server
echo ""
echo "🚀 NFS-Share '$NFS_DIR' ist jetzt aktiv für Subnetz: $LOCAL_SUBNET"
echo "👥 Zugriff: Alle Nutzer, ohne Einschränkung auf UID oder Gruppe"