Auteur Topic: Mounting shares met applescript  (gelezen 11753 keer)

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2668
  • Berichten: 16.550
Mounting shares met applescript
« Gepost op: 13 mei 2015, 09:58:11 »
Ik zette altijd de share zelf bij de startup onderdelen bij het inloggen onderdeel in gebruikers en groepen. Op zich werkt dat goed, maar op die manier worden de windows van de shares altijd direct geopend na het koppelen. Dat kan soms vervelend zijn bij veel shares.

Als je ze via Applescript koppelt is dat probleem er niet, dus ben ik een tijdje geleden aan het schrijven gegaan. Of eigenlijk een aanpassing gedaan op reeds bestaande scripts. Wil je het script ook gebruiken, kopieer dan onderstaand script in een nieuw applescript venster:

(*
  Mount shares to the desktop. Finder will ask for a password the first time.
  You than can choose to store it in the keychain to let it automount the next time.
  Duplicate the "mount_share" command to add more shares.
*)

mount_share("smb", "account", "nasnaam.local", "sharenaam-1")
mount_share("smb", "account", "nasnaam.local", "sharenaam-2")


on mount_share(protocol, account, server, share)
set x to 0
-- try a few time in case the server has to wake up first.
-- don't do anything if the share is already mounted
repeat until x > 4 or mounted_shares() contains share
tell application "Finder"
try
mount volume protocol & "://" & account & "@" & server & "/" & share
on error
set x to x + 1
delay 30
end try
end tell
end repeat
end mount_share

on mounted_shares()
tell application "System Events" to get the name of every disk whose free space > 1
end mounted_shares

Pas alleen de regel: "mount_share("smb", "account", "nasnaam.local", "sharenaam-1")" aan aan je behoefte. Dupliceer daze regel voor elke share die je wilt mounten. (2 stuks in het voorbeeldscript)

Vervolgens kies je "exporteer" uit het "Archief" menu en verander de structuur van "script" naar "Programma". Nu exporteert hij het script als programma.
Vervolgens zet je dit programma bij de inlog onderdelen. Bij elke opstart worden de shares nu ook vanzelf gemount, maar nu blijven de vensters lekker dicht. Je kunt de shares ook openen door het programma gewoon te starten.

  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Woohoo

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 5
  • Berichten: 110
Re: Mounting shares met applescript
« Reactie #1 Gepost op: 18 mei 2015, 19:16:51 »
Ik ken dit 'probleem' van het openen van al die vensters.
Dus heb ik het een tijdje via Hazel gedaan, maar dat was ook niet ideaal.
Recentelijk gebruik ik hiervoor de app Mountain (http://appgineers.de/mountain/), dat behalve mounten nog een aantal extra features kent. Zoals het remounten van shares na een netwerk onderbreking (vooral in situaties wanneer je alleen van wifi afhankelijk bent is dat erg handig, zie je ook gelijk wanneer je wifi verbinding weer beschikbaar is).
  • Mijn Synology: DS713+
  • HDD's: 2 x WD30EFRX
  • Extra's: DX213 met 2xWD30EZRX

Offline Phoenix77

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 24
  • Berichten: 238
Re: Mounting shares met applescript
« Reactie #2 Gepost op: 17 september 2015, 20:27:05 »
@Briolet

Is het ook mogelijk om via AFP te koppelen? Of heb jij er bewust voor gekozen om via SMB te koppelen?

Mvgr,
Phoenix77
  • Mijn Synology: DS214Play
  • HDD's: 2 WD30EFRX

Offline Robstar

  • MVP
  • *
  • Bedankjes
  • -Gegeven: 27
  • -Ontvangen: 38
  • Berichten: 254
Re: Mounting shares met applescript
« Reactie #3 Gepost op: 17 september 2015, 20:50:58 »
Thanks Briolet, gaan we proberen, vraag me wel nog af waarom het vinkje bij verbergen niet werkt in de huidige opzet. ??
DS216Play - DSM 6.2-1
DS211J offsite backup - DSM 6.1.3
RT1900ac - SRM-1.2.1

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2668
  • Berichten: 16.550
Re: Mounting shares met applescript
« Reactie #4 Gepost op: 17 september 2015, 21:26:06 »
Het werkt ook met AFP. SMB was  een willekeurige keuze in het voorbeeld.

Sinds Mavericks is SMB echter het voorkeurs protocol tussen mac's, als beide protocollen via bonjour worden aangeboden. Als apple afscheid lijkt te nemen van afp, lijkt het me dat je shares ook gewoon met smb moet verbinden.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline cyrus1977

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 27
  • -Ontvangen: 54
  • Berichten: 1.529
    • http://www.bonaerial.nl
Re: Mounting shares met applescript
« Reactie #5 Gepost op: 22 september 2015, 22:03:25 »
Hoe reageert jouw script op het moment dat de nas down is ?

Ik had ooit een soortgelijke setup maar als de nas uit was en ik bootte mijn mac dan hing deze erg lang.

Ik ping nu eerst alvorens te mounten via een shellscript.
  • Mijn Synology: DS415
  • HDD's: 4
See http://www.bonaerial.nl
I am root. If you see me laughing, you better have a backup!
The beginning of knowledge is the discovery of something we do not understand.

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2668
  • Berichten: 16.550
Re: Mounting shares met applescript
« Reactie #6 Gepost op: 22 september 2015, 23:07:13 »
Hoe reageert jouw script op het moment dat de nas down is ?
Volgens mij merk je er weinig van en start de rest door. (Nooit getest) Hij geeft wel elke 30 sec. een melding op scherm dat hij geen verbinding kan maken. (5x per share die hij moet mounten)

Maar als je perse de nas op de desktop wilt hebben, heb je toch al een probleem als de nas down is. Je kunt ook gewoon één poging doen en dan opgeven. Dat is ook genoeg als je de nas nooit in slaapstand zet.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Phoenix77

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 24
  • Berichten: 238
Re: Mounting shares met applescript
« Reactie #7 Gepost op: 25 september 2015, 10:09:47 »
Het script geschreven en het werkt bijna perfect.

Om een of andere reden lukt het niet om mijn home map op de synology via dit script te mounten.
Hebben anderen hier ook last van?
  • Mijn Synology: DS214Play
  • HDD's: 2 WD30EFRX

Ben(V)

  • Gast
Re: Mounting shares met applescript
« Reactie #8 Gepost op: 25 september 2015, 10:18:39 »
Geen idee maar een home map is eigenlijk geen share maar een link naar "homes/<naam van de gebruiker>", misschien dat dit er iets mee te maken heeft.

Je zou kunnen proberen "homes" te mounten, dan zie je daar alle home directories van alle gebruikers staan, echter kun je alleen die benaderen waar je rechten op hebt.

Offline Phoenix77

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 24
  • Berichten: 238
Re: Mounting shares met applescript
« Reactie #9 Gepost op: 25 september 2015, 10:25:48 »
het vreemde is als ik de home map benader via  "gedeeld" en dan de share home aan klik deze daarna wel gemount is.

Als ik dan de eigenschappen bekijken zie ik smb://diskstation.local/home staan.

homes mounten lukt niet
  • Mijn Synology: DS214Play
  • HDD's: 2 WD30EFRX

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2668
  • Berichten: 16.550
Re: Mounting shares met applescript
« Reactie #10 Gepost op: 25 september 2015, 11:47:42 »
Inderdaad vreemd. Als ik een niet of wel bestaande share invul, krijg ik het dialoog om een wachtwoord in te vullen. (Op de mac waar ik nu zit heb ik geen WW opgeslagen) Echter, als ik 'home' gebruik, krijg ik geen dialoog, het script blijft ook niet hangen.

Als ik via appeltje-K smb://briolet@nasnaam/home invul, mount home wel correct. Dat script zou hetzelfde moeten doen, maar doet het niet.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2668
  • Berichten: 16.550
Re: Mounting shares met applescript
« Reactie #11 Gepost op: 25 september 2015, 11:57:03 »
Als ik in het script gewoon 'mount volume "smb://Briolet@nasnaam/home"' zet, werkt het wel. Het lijkt erop dat het woord 'home' een speciale betekenis in applescript heeft bij het samenstellen van de string waardoor er niets gebeurd.

Als je

mount_share("smb", "account", "nasnaam.local", "home")

in

mount_share("smb", "account", "nasnaam.local/home", "")

veranderd werkt het wel.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Phoenix77

  • Bedankjes
  • -Gegeven: 13
  • -Ontvangen: 24
  • Berichten: 238
Re: Mounting shares met applescript
« Reactie #12 Gepost op: 25 september 2015, 13:03:40 »
Heb in het script mount_share("smb", "account", "nasnaam.local/home", "home") gezet omdat hij anders in de loop blijft hangen

Helaas werkt niet, hij lijkt te blijven lopen, het programma blijft actief.
  • Mijn Synology: DS214Play
  • HDD's: 2 WD30EFRX

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2668
  • Berichten: 16.550
Re: Mounting shares met applescript
« Reactie #13 Gepost op: 25 september 2015, 13:29:14 »
Ik ben er nu achter waar het probleem zit. Het zit in de regel:

repeat until x > 4 or (list disks) contains share
"list disks" is een lijst met reeds gemounte disks. Echter, daar staat altijd al een 'home' tussen die de mac zelf aanmaakt. Daardoor gaat hij ook niet proberen een share met dezelfde naam te mounten omdat hij denkt dat 'home' reeds gemount is.

  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2668
  • Berichten: 16.550
Re: Mounting shares met applescript
« Reactie #14 Gepost op: 25 september 2015, 18:39:04 »
Ok, ik heb het script in het eerste bericht nu aangepast zodat hij ook met 'home' werkt.

In tussen las ik dat het gebruikte commando (list disks) depricated was en vervangen moest worden door: ‘tell application "System Events" to get the name of every disk’.

In de lijst met disks staan twee speciale disks: "net' en 'home'. Beide zijn geen echte volumes en hebben 0 byte vrije ruimte. Dus als die disks  zonder vrije ruimte uitgesloten zijn, kan het script onderscheiden tussen deze 'home' van de mac en de 'home' op de nas.

De kans is alleen dat het nu mis gaat als je geen schrijfrechten op die share hebt waardoor hij met 0 byte vrije ruimte terug komt. Maar het lijkt me zeldzaam te zijn als je zo'n share wilt koppelen zodat ik wil uitzoeken of dit mis kan gaan.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac