1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

AFP Freigaben des Servers automatisch mounten

Dieses Thema im Forum "macOS & OS X Server" wurde erstellt von stk, 08.09.07.

  1. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    bei einem Blick auf die Systemauslastung und der AFP-Verbindungen des Serveradmins traf mich jüngst der Schlag: 100% CPU-Last, tonnen von Verbindungen - bei gerade mal zwei angemeldeten Rechnern :oops:.

    Wie sich rausstellte lag dies in der Organisation meiner automatisierten Mounts begründet. Bisher nutzte ich dazu folgendes AppleScript:

    Code:
    set DiskList to {"volume1", "volume2", … volumeN}
    set afp_connection_string to "afp://username:password@servername.local/" 
    repeat with this_share in DiskList
    	tell application "Finder"
    		if not (exists disk this_share) then
    			repeat until (exists disk this_share)
    				try
    					mount volume afp_connection_string & this_share
    				on error
    					delay 1
    				end try
    			end repeat
    		end if
    	end tell
    end repeat
    
    Dieses Konstrukt ersetzte meine ursprüngliche Lösung, die sich bei mehr als 2 Shares als fehleranfällig erwies (offenbar kam der Finder mit dem Mounten nicht nach und vergaß die Hälfte).

    Auch Versuche mit MarcoPolo, welcher die Umgebungsbedingungen überwacht und darauf abgestimmt div. Aktionen - u.a. auch das Mounten von Volumes - auslösen kann, brachten keine Besserung.

    Wirklich zuverlässig - im Sinne der Ressourcenschonung auf dem betagten Server - ist bisher nur in den Finder gehen, Apfel-K, Servername eingeben, identifizieren, Volumes auswählen, fertig.

    Läßt sich die Beqeumlichkeit eines automatischen Mountes mit der Ressourcenschonung in Einklang bringen? Wer hat Lösungsvorschläge?

    Gruß Stefan
     
  2. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Ohne jetzt genau zu wissen was Du explizit mit den Shares vor hast hier drei Lösungsvorschläge.

    1. Die SharePoints einmal mounten und im Dock (rechts/unten) ablegen. Zugriff auf den Schlüsselbund erlauben um es komfortabel zu machen. Die 1-Click Lösung sozusagen.

    2. Die SharePoints mounten und in  > Systemeinstellungen > Benutzer > Anmeldeobjekte eintragen. Mountet automatisch beim Anmelden des Benutzers. Zugriff auf den Schlüsselbund ebenfalls erlauben um es komfortabel zu machen. Funktioniert auch tadellos in Kombination mit [1].

    3. Falls der Fileserver ein OpenDirectory Server ist kann man SharePoints an alle Clients die an das Directory Gebunden sind beim Booten automatisch mounten lassen. (Siehe WorkGroup Manager der Server Admin Tools.)

    4. (Ja 4. der 3 Lösungsvorschläge :)) Ordner die auf einem Share liegen im Dock ablegen. Grundsätzlich versucht Mac OS X ein nicht verfügbares Share welches benötigt wird, weil man auf eine Objekt darauf zugreifen möchte automatisch einzuhängen.
    Gruß Pepi
     
  3. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    hi, das ist ja witzig, dass das thema grad hier aufflammt. ich kann die probleme von stk zu 100% bestätigen und quäle mich auch schon länger mit einer lösung herum.
    bei lösungen mit alias im dock, oder in der finder-leiste etc. und startobjekt gibt's aber immer ein problem, wenn der server zeitweilig mal nicht zu erreichen ist. dann hängt der finder gnadenlos fest, und ist völlig unbrauchbar.
    stattdessen würde ich .afploc-dateien bevorzugen. die weisen dieses verhalten bei nicht erreichbarem server nicht auf, während aliase gnadenlos versuchen, das original zu erreichen, so dass nix mehr geht.
    ich bin auch grad an dem thema dran, und habe noch keine 100% brauchbare lösung gefunden.
    die apfel-k lösung habe ich auch mal versucht, per ui-scripting hin zu bekommen, aber auch keine zuverlässig lösung ans laufen bekommen.
     
  4. pepi

    pepi Cellini

    Dabei seit:
    03.09.05
    Beiträge:
    8.741
    Wenn ein AFP Server nicht verfügbar ist, dann darf man sich aber nicht wundern wenn der Finder ein wenig länger danach sucht. Ich hoffe mal, daß sich die Problematik auf mobile Macs bezieht, denn bei einem statischen Mac sollte auch der Server eigentlich immer verfügbar sein. Und wer unterwegs ist sollte eigentlich soviel Weisheit mitbringen, daß er den Server jetzt nicht einfach so erreichen kann.

    Geskriptet würde ich es ca. so lösen: (Pseudocode)
    Nachsehen ob das Volume schon existiert oder gemountet ist
    Falls ja: ende.
    Falls nein
    ---> nachsehen ob ich den Server erreichen kann (zB per ping)
    ---|---> Falls ja: Nachsehen ob das auch wirklich mein Server ist per Vergleich der Hardware Adresse
    ---|---|---> Versuchen den Server zu mounten
    ---|---|---> Falls nein, ende

    Eine wohl nicht wirklich in der Praxis umsetzbare Lösung wäre noch IPv6. Damit sollte man den Server von überrall erreichen können. Das wird in der Realität aber an ca. 1.000 anderen Dingen scheitern.
    Gruß Pepi
     
  5. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    Das geht - ist aber von einer wirklichen Automatisierung noch einen Schritt entfernt.

    Ginge prinzipiell auch, hat aber den Nachteil, das der Mountversuch auch dann startet, wenn ich mich (mobiler UserAccount) außerhalb meines Servers in meinen Account einlogge. Da stammt der ursprüngliche AppleScript Ansatz her, der nur dann einen Mountversuch auslöst, wenn sichergestellt ist, das ich mich im lokalen Netzwerk befinde (Abfrage von einigen Umgebungsvariablen).

    Du sprichst von den Startobjekten, die ich per Einstellung "Anmeldefenster" verwalten kann? Oder sind das die Netzwerkansichten (von denen ich immer noch nicht verstanden habe, was es eigentlich sein soll :oops:)? Falls ersteres: siehe unter 2.

    Siehe unter 1.

    Fast richtig. Mein Thema ist nicht die Verfügbarkeit des Servers und damit der Shares als solches - das kriege ich richtig einfangen. Aber je nach Methode mit der ich das einfangen will, kriege ich einen Server der fast ausschliesslich mit AFP beschäftigt ist.

    aaaaber: nach ein paar weiteren Tests hab ich rausgefunden, das es nicht der AFP-Mountvorgang als solches ist, sondern die anschliessende Indizierung via Spotlight, die ich auf die Servervols schicke. Nachdem das in der Vergangenheit ordentlich funktioniert hat, werde ich mal dies bezüglich ein paar weitere Tests unternehmen müssen. Entweder hat sich mit einem der Systemupdates da was getan oder ich sollte einfach die Indizees mal komplett neuerzeugen.

    So macht das dann nämlich auch ein rundes Bild:

    Die Prozesseorlast des Clients geht hoch - klar, läuft schliesslich mdutil drauf. Die Netzwerklast steigt an - nachvollziehbar. Die CPU-Last des Servers geht aufgrund des AFP-Servers aber auf Anschlag.

    Der Fehler der mehrfach und falsch benannten AFP-Mounts, die mir der Serveradmin anzeigte scheint ein komplett anderes Thema zu sein und ist zwischenzeitlich wohl auch ausgemerzt o_O. Mist wenn sich zwei Fehler überlagern.

    Gruß Stefan
     
  6. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Hi stk, hi pepi
    Für mich stellt sich das Problem noch etwas anders dar. Hier mal mein Leidensweg:
    Ich hatte die Aufgabe, einen G5, der noch unter OS 10.3.7 lief, und viele Automatisierungs-Aufgaben im Netz erledigt, auf 10.4.x zu bringen.
    Vorher lief ein Mountscript, das afp-Mounts der Reihe nach mit einem delay 3 nacheinander aufrief und auch funzte. Nach Update des Rechners auf 10.4.10 reichte dann selbst ein delay 5 nicht mehr aus, um die Volumes alle zuverlässig zu mounten, und ich dachte mir, das kann's doch nicht sein.
    Als Ersatz habe ich dann folgendes Script eingesetzt:

    set Server to "192.XXX.XXX.XXX"
    set volList to {"ServerVolume_A", "ServerVolume_B", "ServerVolume_C", "ServerVolume_E", "ServerVolume_F", "ServerVolume_G"}

    -- alle server mounten in schleife
    if my checkServer(Server) is true then
    ***repeat with volName in volList
    ******my MountServer(Server, volName)
    ***end repeat
    end if

    -- Einzelmount
    on MountServer(ServerIP, vol)
    ***set mountstring to "afp://meinusername:meinpassword@" & ServerIP & "/" & vol
    ***tell application "Finder"
    ******if (disk vol exists) is false then
    *********mount volume mountstring
    *********repeat until (disk vol exists)
    ************display dialog "warte" giving up after 1
    ************delay 1
    ************end repeat
    ******end if
    ***end tell
    end MountServer


    on checkServer(ServerIP)
    ***try
    ******set t to do shell script "ping -c 1 " & ServerIP
    ******if t contains "0% packet loss" then
    *********return true
    ******else
    *********return false
    ******end if
    ***on error
    ******return false
    ***end try
    end checkServer

    (also ganz ähnlich der Lösung von stk, ausser, dass ich den mountbefehl selbst nicht repeaten lasse)

    ERGEBNIS DES SCRIPS:
    - Auf dem G5 unter OS 10.4.10 kommt nach dem Mount weniger Volumes die Fehlermeldung "Disks: Some Objects wasn't found." Was ist das denn????
    Dann dachte ich mir, es liegt vielleicht am etwas anfälligen .10-Update und nahm das Backup und rüstete nur bis 10.4.5 hoch:
    - Gleicher Fehler nach wenigen Volumes. Das Gleiche nach Update auf 10.4.8.
    - Das gleiche Script schnurrt auf der gleichen Maschine unter 10.3.7 aber ganz wunderbar.

    Also mal auf einer anderen Maschine ausprobiert:
    - G4 OS 10.4.8: Das Script schnurrt wie eine 1 und ist 100% zuverlässig
    - anderen G4 OS 10.4.9: Das Script funzt prima und ist absolut zuverlässig.
    - anderer G5 OS 10.4.10: Der Fehler taucht wieder sofort wieder auf.

    Dann habe ich die Brutalo-Methode auf dem G5 angewandt: einen try-Block ohne error-Handling um das Script, und eine Repeat-Schleife (repeat 20 times). Damit schnurrt's dann auch auf dem G5, mounted einigermassen schnell und zuverlässig alle Volumes. Da keine "unnötigen" Mountversuche unternommen werden, kann man das so machen, aber es ist schon ziemlich "Quick & Dirty".
    Zu gern wüsste ich auch, wie diese Fehlermeldung zustande kommt. Es liegt wohl irgendwie daran, dass der Mountvorgang so seine Zeit braucht (während nur bei der Apfel-K Methode wirklich zügig gemounted wird).
    Gruß H =:oops:) L G I
     
  7. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    das ist genau oben beschriebener Effekt, das nur die Hälfte meiner gewollten Mounts ankommt. Irgendwie ist 10.4 da wohl etwas träger geworden … :oops: Aber auch eine definierte Pause haut dich da nicht raus - hab ich auch schon probiert.

    Gruß Stefan
     
  8. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Auch Moin
    Deshalb habe ich ja den "repeat until" eingebaut, der komischerweise aber niemals den Dialog zum Vorschein bringt. Auch nicht, wenn man diesen mit "repeat until (list disks) contains vol" überprüfen lässt. Bei dieser Methode ist mir im übrigen aufgefallen, dass sich das Volume "Network" u.U. vervielfacht.

    Ausserdem kann man nicht generell von der Langsamkeit unter 10.4.x sprechen, da das Skript (wie gesagt) auf den beiden G4's wunderprächtig funzt.

    Auf die G5-Architektur kann man die Problematik aber auch nicht gänzlich schieben, da es unter 10.3.7 auf dem G5 super (und im übrigen am allerschnellsten überhaupt) läuft.

    Und mit der Brutalo-Methode funzt es dann schliesslich auch auf dem G5 unter 10.4.x und verbraucht kaum mehr Zeit als auf den G4s. Vorteil ausserdem: Die Mounts liegen anschliessend tatsächlich in der Reihenfolge vor, wie's im Script vorgesehen ist.
     
  9. ArchiPhil

    ArchiPhil Wohlschmecker aus Vierlanden

    Dabei seit:
    11.03.06
    Beiträge:
    239
    mal ganz ehrlich. so ganz dolle ist das aber nicht gelöst, wenn man solche wege gehen muss damit ein simples netzlaufwerk automatisch gemountet wird. für einen normalen user ohne dieses ganze fachwissen doch nicht realisierbar... sehr schade!
     
  10. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    Ab Leopard geht das viel besser. Dort werden die Netzwerkshares im Finder unter "Shared" angezeigt und sobald man darauf zugreifen will, wird das Laufwerk ohne großes Hickhack im Hintergrund gemountet. Man meint fast, dass die von Anfang an gemountet sind.
     
  11. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    oh, das lässt ja hoffen. traurig allerdings, dass man es bei apple bis jetzt nicht hinbekommen hat.
    von daher bleibe ich skeptisch, hoffe aber, dass ich eines besseren belehrt werde.
    manches war schon unter os9 besser als in X.
    z.b. wünsch ich mir endlich einen button bei den login-items, mit dem ich diese aktivieren und deaktivieren kann. schön wär's auch, wenn man dort die reihenfolge der items bearbeiten könnte.
    mir fielen noch so viele sachen ein, die nicht ordentlich umgesetzt worden sind. schade.
     
  12. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    Hab's bereits unter Leo ausprobieren können. Ist wirklich prima.
     
  13. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Ich glaube, dem Problem auf die Spur gekommen zu sein und eine verläßliche Lösung gefunden zu haben. Wollt ihr das untere Script hier mal ausprobieren. Würde mich über Resonanz freuen. Nach Möglichkeit natürlich über positive :eek:
     
  14. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    10.4.11 quittiert schon den ersten Mountpoint mit
    Code:
    Das Volume „some object“ wurde nicht gefunden.
    Im Script bleibt der Marker auf der Zeile 39
    Code:
        mount volume "afp://" & serv & "/" & vol
    stehen.

    Überraschenderweise läuft meine o.g. erste Konstruktion zwischenzeitlich wieder klaglos. Die Mounts kommen zuverlässig und die Serverlast ist normal.

    Gruß Stefan
     
  15. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Als App gesichert? Oder aus dem ScriptEditor gestartet?

    Ich habe ausmachen können, dass OS X nicht mag, wenn un & pw nochmals im mountstring übergeben werden, wenn bereits ein volume vom server gemountet ist. Es ist dann so, als ob das script un & pw nicht loswerden kann, da man sich ja bereits ausgewiesen hat, und dann erscheint die besagte fehlermeldung. um jetzt nicht alle möglichen mounts des servers auf präsenz zu überprüfen, versuche ich beim first mount eben einfach mit un & pw und bei error "ohne" zu mounten.

    Bei mir läuft das Script jetzt wunderprächtig.

    Allerdings ist es wichtig, evtl. "Leichen" im Ordner "/Volumes" vorher zu entfernen.
     
  16. stk

    stk Grünapfel

    Dabei seit:
    05.01.04
    Beiträge:
    7.141
    Moin,

    ich habs direkt aus dem SkriptEditor gestartet, zuvor jedoch alle gemounteten Freigaben ausgeworfen.

    Gruß Stefan
     
  17. CloneOfMyself

    CloneOfMyself Weigelts Zinszahler (Rotfranch)

    Dabei seit:
    24.02.07
    Beiträge:
    253
    Na, versuchs bitte mal als app. Passwort und username werden beim ersten start abgefragt und in der property aufgenommen. Das finde ich besser, als un & pw als klartext ins script zu schreiben.
    Hattest Du denn die properties angepasst vorm Start im Editor?

    Mach mich bitte nicht schwach. Das mussssssss funktionieren.
     
    #17 CloneOfMyself, 16.06.08
    Zuletzt bearbeitet: 16.06.08

Diese Seite empfehlen