jabaa
Anmeldungsdatum: 22. Dezember 2008
Beiträge: 20
|
Hallo, gibt es eine Möglichkeit einen Server zu mounten? Normalerweise trage ich in die /etc/fstab
| //Server/Freigabe /Mountpunkt cifs user=Username,passwd=Passwort,users 0 0
|
ein. Dann wird die Freigabe auch gemountet und alles klappt. Nur liegen auf dem Server einige Freigaben, die ich auch alle unter smb://Server sehen kann. Um mir smb://Server anzusehen, muss ich mich mit den gleichen Zugangsdaten einloggen, wie für die Freigaben. Es gibt einige Ordner nur für mich und einige gemeinsame Ordner für alle. Überall nutze ich die gleichen Zugangsdaten. Natürlich könnte ich nun alle einzelnen Freigaben in die fstab eintragen, aber ich hoffe, dass ich es mir auch irgendwie einfacher machen kann. Gruß
|
senden9
Anmeldungsdatum: 8. Februar 2010
Beiträge: 965
Wohnort: Österreich
|
Hallo, je nachdem ob du fest oder bei Gelegenheit mounten möchtest kannst du Verzeichnisse per SSH einbinden. Ich habe mir dafür ein Lesezeichen mit folgendem Inhalt in Nautilus eingetragen:
sftp://USERNAME@SERVER_ADRESSE/
Das reicht mir bereits vollkommen aus.
|
jabaa
(Themenstarter)
Anmeldungsdatum: 22. Dezember 2008
Beiträge: 20
|
Ne, das sollte schon bei Möglichkeit fest beim Booten gemountet werden. Ich arbeite zum Beispiel mit dem Qt Creator und nutze die NAS als Speicher für die Projekte. Soweit ich da bisher gesehen habe, kann man da nur lokale Projekte öffnen oder speichern. Also muss ich die NAS am besten direkt beim Booten in einen lokalen Ordner mounten, damit ich nach dem Booten sofort den Qt Creator starten kann, um das letzte Projekt weiter zu bearbeiten. Im Nautilus habe ich ja auch das Lesezeichen
mit gespeichertem Passwort. Das reicht aber leider nicht für den Qt Creator.
|
senden9
Anmeldungsdatum: 8. Februar 2010
Beiträge: 965
Wohnort: Österreich
|
Du suchst also nach einer Lösung welche alle Samba-Freigaben eines Servers beim Start einbindet? So etwas ist mir nicht bekannt. Man könnte ein Skript schreiben welches beim Systemstart alle Freigaben abfragt & einbindet. Aber wäre es nicht einfacher einmal alle händisch in die /etc/fstab einzutragen? Oder ändern sich die Freigaben so oft? Edit zu einem Edit: Die Freigaben werden auch auf das Verzeichnis abgebildet. Unter Arch finde ich sftp://username@server/ auch unter /run/user/1000/gvfs/sftp:host=server,user=username/ wieder . Damit sollten dann sogut wie alle Programme arbeiten können. Wie dieser Pfad unter Ubuntu lautet kann ich dir leider nicht sagen. Edit2: Unter Ubuntu sollte das auch /run/user/BENUTZER-UID/gvfs entsprechen. Auch automatisches Einbinden ist damit möglich, muss allerdings auch einmal eingerichtet werden.
|
jabaa
(Themenstarter)
Anmeldungsdatum: 22. Dezember 2008
Beiträge: 20
|
Danke, das mit dem sftp behalte ich mal im Hinterkopf. Ich müsste ja dann jedes Mal, nach dem Start im Nautilus das Lesezeichen anklicken und hätte dann den kompletten Server. Ich vermute, dass smb ähnlich gemountet wird. Über fstab lässt es sich wohl nicht realisieren. Ich werde dann erstmal händisch die nötigen Freigaben eintragen. Sollte es dann doch irgendwann zu umständlich werden, versuche ich den Weg mit sftp. Unter Windows geht sowas ja auch nicht. Da kann man ja auch nur //Server als Lesezeichen speichern, wenn aber ein Programm ein "lokales" Netzlaufwerk braucht, kann man dort nur eine einzelne Freigabe einbinden. Wahrscheinlich geht es allgemein aus irgendwelchen Gründen nicht. So wie es ist, muss es halt reichen. Danke nochmal für die Mühe.
|
senden9
Anmeldungsdatum: 8. Februar 2010
Beiträge: 965
Wohnort: Österreich
|
Für SMB sollte genau so ein Verzeichnis in /run/user/BENUTZER-UID/gvfs erstellt werden. Und was spicht gegen das einmalige erstellen einiger Einträge in fstab?
|
jabaa
(Themenstarter)
Anmeldungsdatum: 22. Dezember 2008
Beiträge: 20
|
Das hängt ja von der Menge der Freigaben und der Frequenz der Änderungen ab. Die gemeinsamen und öffentlichen Ordner ändern sich schon ziemlich oft. Solange ich sie aber nicht unbedingt mounten, sondern nur über das Nautilus Lesezeichen ansprechen muss, ist es ok für mich. Wenn ich mir vorstelle, dass dort jeden zweiten Tag eine neue Freigabe mit einigen Projekte kommen würde, die ich für Qt Creator in fstab eintragen müsste, wäre mir das schon ein wenig umständlich.
|
Max-Ulrich_Farber
Anmeldungsdatum: 23. Januar 2007
Beiträge: 7992
|
Ich vermute, dass smb ähnlich gemountet wird.
Ja. Nautilus verwendet für den Zugriff auf Netzwerk-Freigaben das GVFS, d.h. er führt im Hintergrund gvfs-mount aus. Das gilt für smb genau so wie für sftp. Welchen Dienst Du verwenden willst, hängt deshalb eher von der Performance und von der Verwaltung der Zugriffsrechte ab. Leider wird NFS vom GVFS nicht unterstützt, das wäre von der Performance her vorzuziehen. Einen anderen, wirklich einfachen Weg, einen ganzen Server anzusprechen, gibt es nicht. Wenn Du aber mit Skripten umgehen kannst, dann kannst Du über den Befehl smbtree alle vorhandenen smb-Freigaben ausgeben lassen und diese dann automatisch der Reihe nach mounten. Das erspart Dir den Weg über Nautilus oder gigolo, und Du kannst den Mountpunkt frei wählen, wo Du willst. Außerdem verwendest Du dann statt des GVFS das cifs-vfs und hast damit eine ungleich größere Auswahl an Mount-Optionen. Gruß – Max-Ulrich
|
senden9
Anmeldungsdatum: 8. Februar 2010
Beiträge: 965
Wohnort: Österreich
|
Ich habe mal ein Skript dafür geschrieben:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 | #!/usr/bin/python3
# Einstellungen Start
remote_name = "servername.local"
username = ""
password = ""
domain = "workgroup"
mountpoint = "/home/USER/shares/"
# Einstellungen Ende
import socket
import subprocess
from os import path, mkdir, rmdir, listdir
from smb.SMBConnection import SMBConnection
from smb.base import SharedDevice
def buildArgs(username, password, domain, mountpoint, server, share):
"""Build the Argument for the mount"""
return ["mount", "-t", "cifs",
"//{0}/{1}".format(server, share),
mountpoint,
"-o",
"user={0},domain={1},passwort={2}".format(username, domain, password)]
try:
server_ip = socket.gethostbyname(remote_name)
except socket.gaierror as err:
print("Cant resolve: {0}".format(err))
exit(1)
conn = SMBConnection(username = "", password="", use_ntlm_v2 = True, remote_name = remote_name, my_name="")
if conn.connect(server_ip) == False:
print("Cant connect to the Server.")
exit(2)
# Rufe die Shares vom Server ab filtere
valid_shares = list()
for sh in conn.listShares():
if sh.type == SharedDevice.DISK_TREE and sh.isSpecial==False and sh.name.endswith("$") == False:
valid_shares.append(sh)
conn.close()
# Führe die mounts aus
mounts = list()
mountPaths = list()
for sh in valid_shares:
shPath = path.abspath(path.join(mountpoint, sh.name))
mountPaths.append(shPath)
if path.exists(shPath) == False:
mkdir(shPath)
args = buildArgs(username, password, domain, shPath, server_ip, sh.name)
p = subprocess.Popen(args)
mounts.append(p)
# Prüfe ob alle mounts erfolgreich waren
error = False
for p in mounts:
p.wait()
if p.returncode != 0:
error = True
# Lösche leere & nicht gerade angelegte Folder
for folder in listdir(path.abspath(mountpoint)):
if (not listdir(path.abspath(path.join(mountpoint, folder)))) and (not (path.abspath(path.join(mountpoint, folder)) in mountPaths)):
rmdir(path.abspath(path.join(mountpoint, folder)))
if error:
print("At least one mount failed!")
exit(3)
|
Features:
Alle SMB-Freigaben eines Servers werden gemountet. Im Ordner mountpoint werden Ordner mit dem Namen der Freigabe angelegt. Damit der Ordner mountpoint nicht vollmüllt wird werden leere & nicht gerade angelegte Order gelöscht.
Der Pfad mountpoint muss schon existieren. Das Skript muss als Root ausgeführt werden da der Mount ansonsten nicht klappt. Hängt von pysmb ab. Wahrscheinlich lade eine überarbeitete englische Version später bei Guthub hoch.
|
Max-Ulrich_Farber
Anmeldungsdatum: 23. Januar 2007
Beiträge: 7992
|
@senden9 Das ist natürlich noch eleganter als das Auswerten von smbtree ! 👍
|
jabaa
(Themenstarter)
Anmeldungsdatum: 22. Dezember 2008
Beiträge: 20
|
Super, das klingt doch schon interessant. Ich werde mich mit dem Python Skript auseinander setzen.
|
senden9
Anmeldungsdatum: 8. Februar 2010
Beiträge: 965
Wohnort: Österreich
|
Wenn Bedarf besteht werde heute Abend noch eine Anleitung schreiben.
|
Max-Ulrich_Farber
Anmeldungsdatum: 23. Januar 2007
Beiträge: 7992
|
Wenn Bedarf besteht werde heute Abend noch eine Anleitung schreiben.
Das wäre schön!
|