Egal, ob Sie ein erfahrener Systemadministrator oder nur ein normaler Benutzer sind, Sie haben wahrscheinlich bereits Laufwerke unter Linux gemountet.
Laufwerke können lokal auf Ihrem Computer oder über das Netzwerk mit dem NFS-Protokoll zugegriffen werden.
Wenn Sie Laufwerke dauerhaft mounten möchten, haben Sie sie wahrscheinlich zu Ihrer fstab-Datei hinzugefügt.
Zum Glück gibt es eine bessere und kostengünstigere Möglichkeit, Laufwerke zu mounten: mit dem Dienstprogramm AutoFS.
AutoFS ist ein Dienstprogramm, das lokale oder entfernte Laufwerke nur dann einbindet, wenn auf sie zugegriffen wird : Wenn Sie sie nicht verwenden, werden sie automatisch ausgehängt.
In diesem Tutorial erfahren Sie, wie Sie AutoFS auf Linux-Systemen installieren und konfigurieren können.
Inhaltsverzeichnis
Voraussetzungen
Bevor Sie beginnen, ist es wichtig, dass Sie über Sudo-Berechtigungen auf Ihrem Host verfügen.
Um dies zu überprüfen, führen Sie einfach den Befehl „sudo“ mit der Option „-v“ aus : Wenn Sie keine Optionen sehen, können Sie loslegen.
$ sudo -v
Wenn Sie keine Sudo-Privilegien haben, können Sie diesem Tutorial für Debian-basierte Hosts oder diesem Tutorial für CentOS-basierte Systeme folgen.
AUTOFS unter Linux installieren
Bevor Sie das Dienstprogramm AutoFS installieren, müssen Sie sicherstellen, dass Ihre Pakete mit Repositorys auf dem neuesten Stand sind.
$ sudo apt-get update
Nachdem Ihr System aktualisiert wurde, können Sie AutoFS installieren, indem Sie den Befehl „apt-get install“ mit dem Argument „autofs“ ausführen.
$ sudo apt-get install autofs
Bei der Installation des AutoFS-Pakets wird der Installationsvorgang :
- Erstellen Sie mehrere Konfigurationsdateien im Verzeichnis /etc, z. B. : auto.meister, auto.net , auto.misc und so weiter;
- Erstellt den AutoFS-Dienst in systemd;
- Fügen Sie den Eintrag „automount“ zu Ihrem „nsswitch“ hinzu.conf“-Datei und verknüpfen Sie sie mit der Quelle „files“
Stellen Sie gleich nach der Installation sicher, dass der AutoFS-Dienst mit dem Befehl „systemctl status“ ausgeführt wird
$ sudo systemctl status autofs
Sie können den AutoFS-Dienst auch aktivieren, damit er beim Start ausgeführt wird
$ sudo systemctl enable autofs
Nachdem AutoFS nun korrekt auf Ihrem System installiert ist, sehen wir uns an, wie Sie mit der Erstellung Ihrer ersten Karte beginnen können.
Wie AutoFS unter Linux funktioniert
„Maps“ sind ein Schlüsselkonzept, wenn es um AutoFS geht.
In AutoFS ordnen Sie Einhängepunkte Dateien zu (was als indirekte Karte bezeichnet wird) oder einem Einhängepunkt einen Standort oder ein Gerät zu.
In der Standardkonfiguration beginnt AutoFS mit dem Lesen von Karten, die im autofs definiert sind.master-Datei im Verzeichnis /etc.
Von dort aus wird ein Thread für alle Einhängepunkte gestartet, die in den in der Masterdatei definierten Kartendateien definiert sind.
Das Starten eines Threads bedeutet nicht, dass der Mount-Punkt beim ersten Start von AutoFS gemountet wird: Er wird nur gemountet, wenn auf ihn zugegriffen wird.
Standardmäßig wird AutoFS nach fünf Minuten Inaktivität Mountpunkte, die nicht mehr verwendet werden, entfernen (oder entfernen).
Hinweis : Konfigurationsparameter für AutoFS sind in /etc/autofs verfügbar.conf
Erstellen Ihrer ersten Auto-Map-Datei
Jetzt, da Sie eine Vorstellung davon haben, wie AutoFS funktioniert, ist es Zeit für Sie, mit der Erstellung Ihrer allerersten AutoFS-Map zu beginnen.
Erstellen Sie im Verzeichnis /etc eine neue Kartendatei mit dem Namen „auto.Beispiel“.
$ sudo touch /etc/auto.example
Das Ziel dieser Map-Datei ist es, eine NFS-Freigabe auf einem Computer im Netzwerk zu mounten.
Die NFS-Freigabe befindet sich unter der IP-Adresse 192.168.178.29/24 im lokalen Netzwerk und exportiert ein Laufwerk unter /var/share.
Bevor Sie versuchen, die NFS-Freigabe automatisch zu mounten, empfiehlt es sich, sie manuell zu mounten und zu überprüfen, ob Sie den Remoteserver kontaktieren können.
$ ping 192.168.178.29
Erstellen einer direkten Karte
Das einfachste Mapping, das Sie mit AutoFS erstellen können, wird als direkte Karte oder direkte Zuordnung bezeichnet.
Eine direkte Karte verknüpft einen Mount-Punkt direkt mit einem Speicherort (z. B. einem NFS-Speicherort)
Angenommen, Sie möchten eine NFS-Freigabe beim Booten auf dem / tmp-Verzeichnis.
Um eine direkte Karte zu erstellen, bearbeiten Sie Ihre „auto.beispiel“ und fügen Sie den folgenden Inhalt hinzu:
# Creating a direct map with AutoFS# <mountpoint> <options> <remote_ip>:<location> /tmp -fstype=nfs 192.168.178.29:/var/share
Jetzt müssen Sie die direkte Karte zu Ihrem „auto“ hinzufügen.master“-Datei.
Um anzugeben, dass Sie auf eine direkte Karte verweisen, müssen Sie die Notation „-“ verwenden
# Content of the auto.master file/- auto.example
enn die Masterdatei geändert wird, können Sie den AutoFS-Dienst neu starten, damit die Änderungen wirksam werden.
$ sudo systemctl restart autofs$ cd /tmp
Herzlichen Glückwunsch, Sie sollten jetzt in der Lage sein, über NFS über Direct Mapping auf Ihre Dateien zuzugreifen.
Erstellen eines indirekten Mappings
Nachdem Sie nun Direct Mappings entdeckt haben, sehen wir uns an, wie Sie indirekte Mappings verwenden können, um Remote-Speicherorte auf Ihrem Dateisystem zu mounten.
Indirekte Zuordnungen verwenden die gleiche Syntax wie direkte Zuordnungen mit einem kleinen Unterschied: Anstatt Positionen direkt am Einhängepunkt anzubringen, montieren Sie sie an einer Position in diesem Einhängepunkt.
Um dies zu verstehen, erstellen Sie eine Datei mit dem Namen „auto.nfs“ und fügen Sie den folgenden Inhalt ein
nfs -fstype=nfs 192.168.178.29:/var/share
Wie Sie sehen können, hat sich die erste Spalte geändert : In einer direkten Map verwenden Sie den Pfad zum Mountpoint (z. B. /tmp), bei einer indirekten Map geben Sie jedoch den Schlüssel an.
Der Schlüssel repräsentiert den Verzeichnisnamen, der sich im Einhängepunktverzeichnis befindet.
Bearbeiten Sie Ihre „auto.master“-Datei und fügen Sie den folgenden Inhalt hinzu
/tmp /etc/auto.nfs
Starten Sie Ihren AutoFS-Dienst neu und gehen Sie zum Verzeichnis „tmp“
$ sudo systemctl restart autofs$ cd /tmp
Standardmäßig wird nichts angezeigt, wenn Sie den Inhalt dieses Verzeichnisses auflisten: Denken Sie daran, dass AutoFS die Verzeichnisse nur einbindet, wenn auf sie zugegriffen wird.
Damit AutoFS das Verzeichnis einbinden kann, navigieren Sie zu dem Verzeichnis, das nach dem Schlüssel benannt ist, den Sie in „auto.nfs“-Datei (in diesem Fall „nfs“ genannt)
$ cd nfs
Großartig!
Ihr Mountpoint ist jetzt aktiv und Sie können Ihr Verzeichnis durchsuchen.
Entfernte Home-Verzeichnisse zuordnen
Nachdem Sie nun ein wenig mehr über direkte und indirekte Zuordnungen verstanden haben, stellen Sie sich vielleicht eine Frage: Was bringt eine indirekte Zuordnung, wenn Sie Standorte einfach direkt zuordnen können?
Um nützlich zu sein, sollen indirekte Karten mit Platzhalterzeichen verwendet werden.
Ein wichtiger Anwendungsfall des Dienstprogramms AutoFS ist die Möglichkeit, Home-Verzeichnisse remote zu mounten.
Da sich jedoch die Benutzernamen von einem Benutzer zum anderen ändern, können Sie keine saubere und gut aussehende Kartendatei erstellen.
# Without wildcards, you have very redundant map files/home/antoine <ip>:/home/antoine/home/schkn <ip>:/home/schkn/home/devconnected <ip>:/home/devconnected
Zum Glück gibt es eine Syntax, mit der Sie Verzeichnisse dynamisch erstellen können, je nachdem, was auf dem Server verfügbar ist.
Um dies zu veranschaulichen, erstellen Sie eine neue Datei mit dem Namen „auto.home“ in Ihrem / etc-Verzeichnis und beginnen Sie mit der Bearbeitung.
# Content of auto.home* <ip>:/home/&
In diesem Fall gibt es zwei Wildcards und es bedeutet einfach, dass alle Verzeichnisse, die im Verzeichnis /home auf dem Server gefunden werden, einem Verzeichnis mit demselben Namen auf dem Client zugeordnet werden.
Um dies zu veranschaulichen, nehmen wir an, wir haben einen NFS-Server, der unter der IP-Adresse 192.168.178.29 ausgeführt wird und alle Home-Verzeichnisse für unsere Benutzer enthält.
# Content of auto.home* 192.168.178.29:/home/&
Speichern Sie Ihre Datei und starten Sie die Bearbeitung Ihrer Auto.masterdatei, um Ihr indirektes Mapping zu erstellen
$ sudo nano /etc/auto.master# Content of auto.master/home /etc/auto.home
Speichern Sie Ihre Masterdatei und starten Sie Ihren AutoFS-Dienst neu, damit die Änderungen angewendet werden.
$ sudo systemctl restart autofs
Jetzt können Sie zum Verzeichnis /home wechseln und sollten in der Lage sein, die Verzeichnisse zu sehen, die für die Benutzer korrekt gemountet sind.
Hinweis : wenn Sie nichts im Verzeichnis sehen, denken Sie daran, dass Sie möglicherweise einmal auf das Verzeichnis zugreifen müssen, damit es von AutoFS gemountet wird
hosts in Ihrem Netzwerk
Wenn Sie auf das Auto geachtet haben.master-Datei, haben Sie wahrscheinlich bemerkt, dass es einen Eintrag für das Verzeichnis /net mit dem Wert „-hosts“ gibt.
Der Parameter „-hosts“ soll alle in der Datei /etc/hosts definierten Einträge darstellen.
Zur Erinnerung: Die „hosts“ -Datei kann als einfacher und lokaler DNS-Resolver angesehen werden, der eine Reihe von IPs mit Hostnamen verknüpft.
Als Beispiel definieren wir einen Eintrag für den NFS-Server in der Datei /etc/hosts, indem wir die IP und den Hostnamen der Maschine eingeben.
Stellen Sie zunächst sicher, dass einige Verzeichnisse auf dem Server exportiert werden, indem Sie den Befehl „showmount“ auf dem Client ausführen.
$ sudo showmount -e <server>
Nachdem Sie nun sichergestellt haben, dass einige Verzeichnisse exportiert werden, gehen Sie zu Ihrem „auto.master“ -Datei in / etc und fügen Sie die folgende Zeile hinzu.
# Content of auto.master/net -hosts
Speichern Sie Ihre Datei und starten Sie Ihren AutoFS-Dienst neu, damit die Änderungen übernommen werden.
$ sudo systemctl restart autofs
Das war’s!
Jetzt sollte Ihre NFS-Freigabe im Verzeichnis /net unter einem Verzeichnis zugänglich sein, das nach dem Hostnamen Ihres Servers benannt ist.
$ cd /net/<server_name>$ cd /net/<server_ip>
Hinweis : Denken Sie daran, dass Sie direkt im Verzeichnis navigieren müssen, damit es gemountet werden kann. Sie werden es nicht sehen, indem Sie einfach das Verzeichnis / net auf der ersten Einhängung auflisten.
Fehlerbehebung
In einigen Fällen können Probleme beim Einrichten von AutoFS auftreten, z. B. wenn ein Gerät belegt ist oder Sie keinen Remote-Host kontaktieren können.
- einhängen/einhängen : ziel ist ausgelastet
Da Linux ein Mehrbenutzersystem ist, können einige Benutzer einige Speicherorte durchsuchen, die Sie ein- oder aushängen möchten (mit AutoFS oder nicht)
Wenn Sie wissen möchten, wer durch den Ordner navigiert oder wer eine Datei verwendet, müssen Sie den Befehl „lsof“ verwenden.
$ lsof +D <directory>$ lsof <file>
Hinweis : Die Option „+D“ wird verwendet, um um aufzulisten, wer die Ressource rekursiv verwendet.
- showmount hängt beim Konfigurieren der Hosterkennung
Wenn Sie versucht haben, die Hosterkennung mit dem Parameter „-hosts“ zu konfigurieren, haben Sie möglicherweise überprüft, ob auf Ihre Remote-Hosts mit dem Befehl „showmount“ zugegriffen werden kann.
In einigen Fällen hängt der Befehl „showmount“ jedoch einfach, da er den Remote-Server nicht kontaktieren kann.
Die meiste Zeit blockiert die Server-Firewall die Anfragen des Clients.
Wenn Sie Zugriff auf den Server haben, versuchen Sie, die Protokolle zu überprüfen, um festzustellen, ob die Firewall (z. B. UFW) die Anforderungen blockiert oder nicht.
- Debuggen mit dem Autount-Dienstprogramm
Bei neueren Distributionen wird das Dienstprogramm autofs als Systemd-Dienst installiert.
Infolgedessen können Sie die autofs-Protokolle mit dem Befehl „journalctl“ überprüfen.
$ sudo journalctl -u autofs.service
Sie können auch das Dienstprogramm „automount“ verwenden, um die vom Dienst vorgenommenen automatischen Mounts zu debuggen.
$ sudo systemctl stop autofs$ sudo automount -f -v
Fazit
In diesem Tutorial lernten Sie das AutoFS-Dienstprogramm kennen: wie es funktioniert und die Unterschiede zwischen direkten und indirekten Karten.
Sie haben auch gelernt, dass es konfiguriert werden kann, um die Hosterkennung einzurichten: Sie können sofort eine Verbindung zu allen NFS-Freigaben Ihres lokalen Netzwerks herstellen, was ein sehr leistungsfähiges Tool ist.
Schließlich haben Sie gesehen, wie Sie indirekte Karten erstellen können, um automatisch Home-Verzeichnisse im laufenden Betrieb zu erstellen.
Wenn Sie sich für die Linux-Systemadministration interessieren, haben wir einen vollständigen Abschnitt, der diesem Thema gewidmet ist.Schauen Sie also unbedingt vorbei!