• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Samba Freigaben automatisch Mounten

Folgendes Scenario:
2 Rechner, 2 Laptops. Auf allen ist sowohl Windows als auch Linux installiert und es werden beide Systeme benutzt. Es gibt jedoch keinen Computer der kontinuierlich angeschaltet ist.

Es sollen nun die Homeverzeichnisse aller Rechner im lokalen Netz verfügbar sein. Dies wurde durch einen Samba Server erreicht. (Einrichtung durch Yast)
Auf allen Linuxrechnern wurden mit smbpasswd die entsprechenden Nutzer angelegt (sind alle ebenfalls in passwd).

Die Home-Verzeichnisse der anderen Computer sollen auf jedem Computer lokal verfügbar sein. Z.B. unter /home/Austausch/Computer1/user1
/home/Austausch/Computer1/user2
/home/Austausch/Computer2/user1
/home/Austausch/Computer2/user2
usw.

Wenn ich die remote Verzeichnisse alle beim booten mounte, dann schlagen sehr viele mounts fehl, weil die Rechner nicht angeschaltet sind. Diese müssen daher, sobald der Rechner in Netz geht, bzw der Nutzer darauf zugreift und der entsprechende Rechner im Netz ist, gemountet werden.

Nur wie richtet man einen automounter für samba mounts ein ??

Matthias
 
rolle schrieb:
Als Idee fiele mir ein Cronjob ein, der alle fünf Minuten versucht, die Freigaben zu mounten.
War auch mein einziger Gedanke. Ich weiß zwar noch nicht wie ich das umsetzte, aber wenn ich es habe poste ich es. Eine andere Lösung wäre mir aber prinzipiell lieber...

EDIT:

Als Grundlage für einen Service bzw einen Cronjob habe ich jetzt folgendes analog zu http://www.ag-intra.net/linux-al-smbmount.html als Grundlage zusammengebastelt:
Code:
#!/bin/sh
# mounten des Windows-Shares "matthias" auf Rechner matthias
if test -d /home/Austausch/Sarah/matthias
then
   echo "Das Windows-Share matthias@Sarah ist bereits gemounted"
   exit 1
else
   mkdir /home/Austausch/Sarah/matthias
   chown matthias:users /home/matthias/graphics
      smbmount //sarah/matthias /home/Austausch/Sarah/matthias -o "credentials=/etc/samba/password.Sarah.matthias,workgroup=WGNETZ,ip=192.168.2.155,codepage=utf8,uid=501,gid=100"

   if test $? -ne 0
   then
      rmdir matthias
      echo "Windows-Share mounten fehlgeschlagen"
      exit 1
   else
      exit 0
   fi
fi

Code:
#!/bin/sh
# Dieses Skript unmounted das Windows-Share wieder

if test -d /home/Austausch/Sarah/matthias
then
   umount /home/Austausch/Sarah/matthias
   rmdir /home/Austausch/Sarah/matthias
   exit 0
else
   exit 1
fi

Jetz muss ich nur noch ein Skript basteln das auf intelligente Weise alle Shares abklappert und dass ich auf allen Rechnern ohne Anpassungen einrichten kann.

Matthias
 
Als kleine Hilfe:
Code:
for i in `nmap -v -PR 192.168.0.0/24 | grep Host | awk -F" " '{print $3}' | sed 's/[(,)]//g'`; do if smbclient -N -L "$i" > /dev/null 2>&1; then echo "$i"; fi; done;
Durchsucht das Netzwerk 192.168.0.0/24 nach Rechnern, die "Up" sind, prüft, ob der Samba Server antwortet, und gibt dann deren IP aus.

Um zu testen, ob eine Freigabe bereits eingebunden ist, würde ich aber eher auf die Ausgabe von 'mount' bzw. die '/etc/mtab' zurückgreifen.
Also z.B.
Code:
if mount | grep "//IP/Freigabe" > /dev/null 2>&1; then echo "mounted"; fi;
bzw.
Code:
if grep "//IP/Freigabe" /etc/mtab > /dev/null 2>&1; then echo "mounted"; fi;
Dann spart man sich auch das Anlegen/Löschen der Mountpoints.

Viel Spass :D
 
Oben