NFS-Freigabe

Stand Bookworm oder Ende 2024

Hier nur die reine NFS-Freigabe. Für einen LXC sei erwähnt, dass der Container Privilegiert gestartet wird und dass das Nesting und NFS aktiv sind! Das gilt für Host und Client.

Host:

IP: 192.168.1.65

Freigabeverzeichnis: /srv/nfsdata1

Client:

IP: 192.168.1.80

Mountverzeichnis: /mnt/remotemount1

Host – Freigabe bereitstellen:

Root-Rechte werden benötigt.

mkdir -p /srv/nfsdata1
chmod -R 777 /srv/nfsdata1

Achtung! In meinem Home-System kann ich das so verwenden. Das heißt aber auch am Host selbst, dass dieses Verzeichnis für alle Benutzer sichtbar ist! Da mein Host aber nur für mich selbst zugänglich ist, stört mich das nicht. Die NFS-Freigabe über das NFS-Protokoll ist dann allerdings nur für die zugelassenen IP-Adressen verfügbar.

apt update && apt upgrade -y
apt install nano nfs-kernel-server nfs-common -y
nano /etc/exports

Folgendes trage ich am Ende dieser Datei ein (einige Beispiele zur Demonstration – ich verwende „# Mein persönlicher Eintrag:“ für meine Umgebung):

# (R) = Read only | (R/W) = Read/Write

# Bsp.1: Freigabe gilt nur für 192.168.1.100, (R):
/data 192.168.1.100(ro,async)

# Bsp.2: Freigabe gilt für alle IPs von 192.168.1.6 bis 192.168.1.255, (R/W):
/data 192.168.1.6/255.255.255.0(rw,async)

# Bsp.3: Freigabe gilt nur für 192.168.1.39, (R/W):
/data 192.168.1.39(rw,async)

# Mein persönlicher Eintrag:
/srv/nfsdata1 192.168.1.80(rw,async,no_subtree_check,crossmnt)

Strg-x, y, Enter

exportfs -ra
service nfs-kernel-server restart
showmount -e 192.168.1.65
root@test:~# showmount -e 192.168.1.65
Export list for 192.168.1.65:
/srv/nfsdata1 192.168.1.80
root@test:~#

Hier bin ich fertig.

Quelle:

https://wiki.ubuntuusers.de/NFS/

Die Freigabe wurde erstellt und steht nun im Beispiel für 192.168.1.80 zur Verfügung.

Client – Freigabe hinzufügen:

apt update && apt upgrade -y
apt install nano nfs-common -y
mkdir -p /mnt/remotemount1
mount 192.168.1.65:/srv/nfsdata1 /mnt/remotemount1

Erscheint nun keine Fehlermeldung, wurde die Verbindung hergestellt. Zum Test erstelle ich eine Datei in diesem Verzeichnis. Somit kann ich auch gleich die Schreibrechte prüfen:

touch /mnt/remotemount1/testdatei.txt

Wurde die Datei angelegt, sollte diese auch am Host unter /srv/nfsdata1 vorhanden sein.

Nun trenne ich die Verbindung wieder:

umount -l /mnt/remotemount1

Nun könnte ich die Verbindung in der Fstab eintragen (somit hätte ich die Verbindung automatisch nach einem Reboot wiederhergestellt und könnte die Freigabe auch für meine tägliche Arbeit verwenden):

nano /etc/fstab

Am Ende dieser Datei füge ich folgendes ein:

192.168.1.65:/srv/nfsdata1 /mnt/remotemount1 nfs rw 0 0

Strg-x, y, Enter

mount -a

Die meisten Anwender sind hier fertig und können die NFS-Freigabe verwenden.

Für meine Zwecke benötige ich allerdings ein anderes Szenario. Ich verwende meist die NSF-Freigabe für Backups. Und die werden meist einmal Täglich gestartet. Dafür muss aber die NFS-Verbindung nicht dauerhaft aktiv sein. Also lasse ich den Fstab-Eintrag weg und erstelle mir ein Script, in welchem das Verzeichnis gemountet wird, mein Backup gesetzt wird und das Verzeichnis wieder „entmountet“ wird:

cd && mkdir -p /opt/scriptfiles
cd && cd /opt/scriptfiles && nano script1.sh

Folgendes trage ich ein:

#!/bin/bash

# Verzeichnis mounten
mount 192.168.1.65:/srv/nfsdata1 /mnt/remotemount1 nfs rw 0 0

# Nun mein Befehl, den ich ausführen möchte (z.B. rsync von Host zum Client)
rsync -aAx /mnt/remotemount1/ /opt/mein_angelegter_backupordner

# Verzeichnis wieder trennen
umount -l /mnt/remotemount1

Strg-x, y, Enter

cd && cd /opt/scriptfiles && chmod 700 script1.sh

Zum Aufruf des Scriptes folgenden Befehl eingeben:

cd && cd /opt/scriptfiles && ./script1.sh

Nun automatisiere ich das Ganze:

crontab -e

Folgendes am Ende der Datei einfügen:

0 5 * * * /opt/scriptfiles/script1.sh >/dev/null 2>&1<br>
#

STGR-x, y, Enter

Jetzt wird täglich 05:00 Uhr das „script1.sh“ gestartet.

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten