Wenn man Netzwerk-Shares benutzt, ist es selten sinnvoll, diese Shares staendig zu verbinden. Schlauer waere es doch, wenn man sie nur dann verbinden wuerde, wenn sie gebraucht werden. Und genau das leistet ''autofs''. Die Einrichtung geht flott von der Hand, wenn man weiss wie.
Installieren von autofs
mit dem Paketmanagement der eigenen Distribution.
So einrichten, dass es automatisch startet, beispielsweise mit rc-update add autofs
, bei Debian und Ubuntu ist nichts zu tun.
Ein Verzeichnis erstellen, unter dem die Shares eingebunden werden sollen, bei mir mkdir /ext
.
Danach die eigentliche Konfiguration:
In die /etc/autofs/auto.master
(bei Debian und Ubuntu /etc/auto.master
) folgende Zeile einfuegen:
/ext /etc/autofs/auto.misc --timeout=300 --ghost
Fuer Debian und Ubuntu /etc/auto.misc
, es kann aber auch eine beliebige andere Datei sein. timeout=300
sorgt fuer einen umount nach 300 Sekunden Inaktivitaet und ghost
sorgt dafür, dass die Verzeichnisse auch sichtbar sind, wenn sie nicht gemountet wurden.
In die /etc/autofs/auto.misc
bzw. /etc/auto.misc
kommen jetzt die ganzen Shares, die eingebunden werden sollen. In den Dateien finden sich bereits einige Beispiele, ich zeige das hier einmal exemplarisch für eine cifs-Share:
share -fstype=cifs,credentials=/root/credentials,nounix ://host/sharename
share
ist der Name des Verzeichnisses unter /ext
, wohin die Einbindung erfolgen soll. Nach einem Tab (oder ein paar Leerzeichen) folgt das Filesystem mit den Optionen, die gebraucht werden und wieder ein paar Leerzeichen (oder ein Tab) spaeter die Informationen des anbietenden Rechners.
/root/credentials
erstellen mit folgendem Inhalt:
username=value password=value workgroup=value
Falls keine Workgroup bekannt ist einfach „workgroup“ benutzen oder eventuell sogar den Parameter weglassen.
Nach einem Neustart von autofs gibt es einen virtuellen Ordner /ext/share und erst beim Wechsel in das Verzeichnis wird der Mount ausgeführt. 300 Sekunden nachdem kein Prozess mehr auf Dateien dort zugreift, wird das Verzeichnis wieder ausgehaengt.
So richtig interessant wird das in Verbindung mit FUSE (Filesystem in Userspace), da denke ich insbesondere an sshfs, davfs2 oder ftpfs. Es gibt eine sehr grosse Anzahl von Netzwerkdateisystemen, die von FUSE unterstuetzt werden.
Ich beschreibe hier das Vorgehen mit sshfs, da es das komplizierteste ist.
Zuerst muessen wir testen, ob der User root (!) in der Lage ist per ssh auf die Gegenseite zuzugreifen.
ssh ich@ziel.domain.tld
Sollte das nicht klappen, muss die ~/.ssh/config
des root-Users angepasst werden. Meist reicht ein Eintrag, um den Key festzulegen, mit dem zugegriffen werden soll.
Host ziel HostName ziel.domain.tld User ich IdentityFile /home/ich/.ssh/id_rsa
Jetzt funktioniert ein ssh ziel
.
Der Eintrag in die auto.misc
muss erstellt und der Service autofs
neu gestartet werden.
mntpoint -fstype=fuse,rw,uid=1000,gid=1000,allow_other :sshfs\#ich@ziel.domain.tld\:/pfad/zum/verzeichnis
Im Wiki von ubuntu.com stehen noch einige weitere gute Erlaeuterungen.
Gerade, wenn man - beispielsweise als Webentwickler - auf vielen entfernten Systemen arbeitet, ist das eine echte Erleichterung. Beim Wechsel in das entsprechende Verzeichnis wird es eingebunden und, wenn man fertig mit der Arbeit ist, auch wieder ausgehaengt.