• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Volumes mounten und Zeitfaktor einbauen

rakader

Saurer Kupferschmied
Registriert
29.10.06
Beiträge
1.685
Da ich kein GUI-Tool für Lion finde, das vorhandene Volumen und dort Ordner als Netzwerkvolume automatisch mountet, habe ich mir das alte MountOmatic-Script hervorgeholt. Dieses ermöglicht zumindest ein Volume beim Start zu öffnen und das Fenster zu schließen.

Frage ist nunmehr ob man Macken abstellen und Funktionalität erweitern kann?

1. Wenn das angegebene Volume nicht vorhanden ist, sucht sich das Script einen Hirsch, Rechner und Netzwerk lahmen. Wie könnte ein Zeitfenster in AS aussehen, damit es nicht zu unnötigem Traffic kommt?
2. Könnte man das Script dahingehend erweitern, das tieferliegende Ordner als eigenständiges Volume gemountet werden können?

Code:
[B]tell[/B] [COLOR=#223cfb][I]application[/I][/COLOR] "Finder"[COLOR=#223cfb][COLOR=#000000]	[/COLOR][B]activate[/B][/COLOR]
	[COLOR=#223cfb][B]open[/B][/COLOR] [B]every[/B] [COLOR=#223cfb][I]file[/I][/COLOR] [B]of[/B] [COLOR=#223cfb][I]folder[/I][/COLOR] "•Mount this on login" [B]of[/B] [COLOR=#223cfb][I]folder[/I][/COLOR] "Documents" [B]of[/B] [COLOR=#8236d9]home[/COLOR]
[COLOR=#5f6161][COLOR=#000000]	[/COLOR]--close every window[/COLOR]
	[B]repeat[/B] [B]with[/B] [COLOR=#508e15]i[/COLOR] [B]in[/B] ([B]every[/B] [COLOR=#223cfb][I]window[/I][/COLOR] [B]whose[/B] [COLOR=#8236d9]visible[/COLOR] [B]is[/B] [COLOR=#5e3490]true[/COLOR]) [B]as[/B] [COLOR=#223cfb][I]list[/I][/COLOR]
		[B]set[/B] [COLOR=#508e15]WindowPath[/COLOR] [B]to[/B] ([COLOR=#8236d9]target[/COLOR] [B]of[/B] [COLOR=#508e15]i[/COLOR])
		[B]try[/B]
[COLOR=#508e15][COLOR=#000000]			[B]set[/B] [/COLOR]WindowDisk[COLOR=#000000] [B]to[/B] [/COLOR][COLOR=#223cfb][I]disk[/I][/COLOR][COLOR=#000000] [B]of[/B] [/COLOR]WindowPath[/COLOR]
			[B]if[/B] [B]not[/B] ([COLOR=#8236d9]local volume[/COLOR] [B]of[/B] [COLOR=#508e15]WindowDisk[/COLOR]) [B]then[/B]
				[COLOR=#223cfb][B]close[/B][/COLOR] [COLOR=#508e15]i[/COLOR]
			[B]end[/B] [B]if[/B]
		[B]end[/B] [B]try[/B]
	[B]end[/B] [B]repeat[/B]
[B]end[/B] [B]tell[/B]

Einzig die dritte Zeile mit •Mount this on login verstehe ich anzupassen, für Ergänzungen reichen meine AS-Kenntnisse jedoch nicht, und somit wäre ich für Hinweise, Hilfe oder Anregungen dies anders zu lösen sehr dankbar.
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
Ne einfache(re?) Variante:

Versucht den Mount nur, wenn der Server erreichbar ist.
Musst die Shares allerdings hardcoden.

Code:
[B]set[/B] volMap [B]to[/B] {¬
   {prot:"afp", srv:"server", share:"share"}, ¬
   {prot:"smb", srv:"server", share:"share/folder"}}


[B]repeat[/B] [B]with[/B] aVol [B]in[/B] volMap
    [B]tell[/B] aVol
        [B]set[/B] server [B]to[/B] [B]its[/B] srv
        [B]set[/B] shrURL [B]to[/B] ([B]its[/B] prot & "://" & [B]its[/B] srv & "/" & [B]its[/B] share)
        
    [B]end[/B] [B]tell[/B]
    [B]if[/B] pingTest(server) [B]then[/B]
        [B]with[/B] [B]timeout[/B] [B]of[/B] 5 [I]seconds[/I]
            [B]try[/B]
                [B]mount volume[/B] shrURL
            [B]end[/B] [B]try[/B]
        [B]end[/B] [B]timeout[/B]
    [B]end[/B] [B]if[/B]
[B]end[/B] [B]repeat[/B]


[B]on[/B] pingTest(server)
    [B]with[/B] [B]timeout[/B] [B]of[/B] 1 [I]seconds[/I]
        [B]try[/B]
            [B]do shell script[/B] "ping -c1 " & server
            [B]return[/B] true
        [B]end[/B] [B]try[/B]
    [B]end[/B] [B]timeout[/B]
    [B]return[/B] false
[B]end[/B] pingTest
 

rakader

Saurer Kupferschmied
Registriert
29.10.06
Beiträge
1.685
Lieben herzlichen Dank, Fysh! Eine Frage dazu: An welcher Stelle baue ich Dein Script ein? Ersetze ich damit den set WindowPath-Abschnitt?

Viele Grüße
R.Kader
 

fyysh

Schweizer Glockenapfel
Registriert
25.01.10
Beiträge
1.386
Soweit ich dich verstanden habe, willst du das Script beim Login ausführen.
Wenn du verifiziert hast, dass es funktioniert, einfach als app speichern und in die login items aufnehmen. Sollte eigentlich funktionieren.
Dein altes Skript wird nicht dadurch erweitert - ist ne ganz andere Methode.
 

rakader

Saurer Kupferschmied
Registriert
29.10.06
Beiträge
1.685
Hallo fyysh - eine tolle Methode, die 1a funktioniert. Das ist schon höhere Scriptkunst in meinen Augen. Lieben Dank dafür,

Radulph
 

Homeserver

Boskoop
Registriert
28.04.11
Beiträge
40
Hallo Zusammen

ich habe einen mini Lion Server und ein Synology Nas wo die großen Daten liegen.
Nun möchte ich gerne das wenn sich ein Client an einem Clientrechner anmeldet automatisch seine Arbeitslaufwerke die auf dem Nas liegen gemountet bekommt.

Momentan mache ich das mit einem Apple Script welches bei Anmeldung des Clients gestartet wird.

set volList to {"Arbeit", "Einstellungen", "Software"}

repeat with vol in volList
if vol is not in (list disks) then
mount volume "afp://Diskstation.local" & "/" & vol
end if
end repeat

Das funktioniert aber leider nur teilweise.
Die Laufwerke werden gemountet und am Deskotp mit Arbeit Einstellungen und Software angezeigt.

So weit so gut.
Schaut man aber über den Terminal nach unter /Volumes dann werden diese oft mit

/Volumes/Einstellungen
/Volumes/Einstellungen-1

gemountet. Es gibt dann einen Eintrag der richtig lautet aber nicht funktioniert und der der funktioniert hat eine Endung -1 hinten dran.
Das wäre kein Problem wenn man nur über den Finder arbeiten würde weil am Desktop ja der richtige Namen angezeigt wird.
Jedoch habe ich eine Software laufen bei der ich als Pfad /Volumes/Einstellungen angegeben habe und somit läuft diese nicht wie sie sollte.

:(

Kann man die Laufwerke zb mit dem Server Admin bei Anmeldung "richtig" mounten das es auch funktioniert.
ODER irgendwie anders?

Bitte um Hilfe der Homeserver
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Die Ziffer als Suffix wird automatisch angefügt, wenn am Ort des zu erstellenden Mounts bereits ein entsprechend benannter Ordner existiert.
Ergo: Beim "händischen" Entladen eines Volumes immer auch den dazugehörigen Ordner, der als Mountpoint diente, mit entfernen.
 

Homeserver

Boskoop
Registriert
28.04.11
Beiträge
40
Hi Rastafari

Mir ist schon klar das er den -1 Mount nur erstellt weil ein Mountpoint mit dem selben Namen schon existiert.
Der springende Punkt ist aber warum existiert dieser?
Oder besser wie kann ich verhindern das neuer Mountpoint mit -1 erstellt wird?

Wie kann ich den alten Mountpoint automatisiert löschen und einen richtigen erstellen lassen?

Grüße der Homeserver