Auteur Topic: Automatisch verbinden netwerk schijf blijven proberen  (gelezen 3504 keer)

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Goedemorgen,

Ik heb een NAS buiten mijn thuisnetwerk draaien waarmee ik via onderstaande applescript automatisch verbinding maak wanneer mijn MacBook opstart:

tell application "Finder"
    delay 30
    mount volume "smb://ip-adres_NAS/mapnaam" as user name "USERNAME"
end tell

Nu komt het wel eens voor dat de verbinding met de NAS wordt verbroken en dat ik dan weer handmatig verbinding moet maken. Kan iemand mij helpen om het script zo aan te passen dat deze elke minuut o.i.d. controleert of de verbinding nog in stand is en wanneer dit niet het geval is deze verbinding weer hersteld wordt?

Offline Birdy

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 1381
  • -Ontvangen: 7983
  • Berichten: 44.003
  • Alleen een PB sturen als hier om gevraag wordt.
    • Truebase
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #16 Gepost op: 17 mei 2024, 11:40:06 »
Ik heb je 2 Topics maar samengevoegd, dan wordt het eenduidiger............


CS406      DSM 2.0-0731    DS508      DSM 4.0-2265      DS411+II  DSM 6.2.4-25556-7   DS115J    DSM 7.1.1-42962-5   DS918+    DSM 6.2.4-25556-7
DS107+     DSM 3.1-1639    DS411slim  DSM 6.2.4-25556   DS213J    DSM 6.2.4-25556-7   DS1515+   DSM 6.2.4-25556-7   DS220+    DSM 7.2.2-72806-1
DS107+     DSM 3.1-1639    DS111      DSM 5.2-5967-9    DS413J    DSM 6.2.3-25426-2   DS716+II  DSM 7.2.2-72806-1   RT2600ac  SRM 1.3.1-9346-12
BeeDrive   1TB             BeeServer  BSM 1.1-65374                                                                 MR2200ac  SRM 1.3.1-9346-12

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.547
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #17 Gepost op: 17 mei 2024, 12:04:26 »
Even zoeken met DDG leverde op:

Citaat
if you want to run applescript periodically, use "Idle" handler :

On idle
-- do this and this / add you code
return xxx
end idle

you run your code and it will keep running for ever (except if your code contains a quit command). the xxx value after the return is the number of seconds (positive !) before the next run. in your code, you can check application current status, or any other things. If not enough, you can use launchd method (see Apple launchd).

Jouw code kun je er dan in plakken.


Edit:  Ik mijn script eens aangepast met dit idle commando, maar dan mount hij bij mij niets. op mijn mac met OS Sonoma.  Wat zeker moet werken is het maken van een "launchd".  Ik heb het nooit gedaan, maar dan wordt een timer in het systeem gezet en periodiek een opdracht uitgevoerd.

Zie: Scriptbeheer met 'launchd' in Terminal op de Mac of https://launchd.info
En de launchd files zijn tekstfiles in het 'plist' formaat. zie b.v. How do I set a task to run every so often?
Dit is vergelijkbaar met de cronjobs op de nas.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #18 Gepost op: 17 mei 2024, 19:01:31 »
Het is mij wel gelukt met het idl handler commando. Het script wordt dan als volgt (vergeet niet om hem op te slaan als met het vinkje bij 'Niet sluiten na uitvoerhandler'):

on idle

tell application "Finder"
delay 30
mount volume "smb://ip-adres_NAS/mapnaam" as user name "USERNAME"
end tell

return 300
end idle

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.547
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #19 Gepost op: 17 mei 2024, 23:59:01 »
Goed dat je het toch geprobeerd hebt. Het werkt hier nu ook.

Ik had het script eerst binnen de script editor gerund en daar deed hij niets. Daarna dacht ik dat deze idle handler misschien alleen werkte als het script gecompileerd werd tot app. Maar hierbij heb ik niet op de 3 checkboxjes gelet die ik nog kon aanvinken.

Inderdaad zorgt 'Niet sluiten na uitvoerhandler' ervoor dat de app dan open blijft en blijft zijn werk op de achtergrond uitvoeren.

Ik houd van het gebruik van functies, dus mijn eerdere script wordt dan:

on idle
mount_share("smb", "Briolet", "GedeeldeData.local", "GH-Data")
mount_share("smb", "Briolet", "GedeeldeData.local", "Macintosh")
        mount_share("smb", "Briolet", "GedeeldeData.local", "home")
return 120
end idle


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 (list disks) 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

Het verschil met jouw script is dat hij niet elke keer de share probeert te mounten, ook al is hij al gemount. Dit script kijkt eerst of hij al gemout is en mount alleen als hij hem nog niet ziet. En probeert het 4 keer, voor het geval de nas erg traag reageert, b.v. omdat hij eerst uit een slaapstand moet komen. En als de share al gemount is, wordt het commando "delay 30" ook nooit uitgevoerd.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #20 Gepost op: 19 mei 2024, 07:31:34 »
Ik zou dit script graag willen gebruiken.

Volgens mij hoef ik alleen het eerste gedeelte aan te passen naar mijn NAS. Ik kan alleen niet zo goed herleiden waar ik welke gegevens in moet vullen.

mount_share("smb", "Briolet", "GedeeldeData.local", "GH-Data")

Briolet = gebruikersnaam?
GedeeldeData.local = NAS naam?
GH-Data = Mapnaam?

Kunt u mij opweg helpen?

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.547
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #21 Gepost op: 19 mei 2024, 10:18:34 »
Precies zoals je schrijft.

GedeeldeData.local is het IP adres van de nas of de domeinnaam van de nas.

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

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #22 Gepost op: 21 mei 2024, 20:08:12 »
Hartelijk dank. Script werkt naar behoren

on idle
mount_share("smb", "Lisa", "xx.xx.xx.xx", "Backup Lisa")
return 120
end idle


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 (list disks) 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

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #23 Gepost op: 11 juni 2024, 15:07:36 »
Ik ben nog niet helemaal tevreden met het script.

Wat is nu het probleem? Wanneer ik de Mac afsluit of uitlog wordt dit verhinderd door het script dat ik vervolgens via forceer stop moet afsluiten voordat ik het account kan uitloggen of de Mac kan afsluiten.

Mogelijk komt het door mijn wat bijzondere set up. Ik heb namelijk 1 NAS thuis staan en 1 NAS extern staan. Om met beide NASsen te verbinden heb ik 2 verschillende scripts gemaakt (kan vast ook in 1 script maar ik heb geen idee hoe).
Script 1 start direct bij het opstarten van de Mac en verbindt met de NAS in het thuisnetwerk. Iets daarna start automatisch de OpenVPN app en verbindt de DDNS van de externe NAS. Met een delay van 30 seconde start script 2 welke verbindt met de externe NAS.

Vervolgens blijven beide scripts controleren of de verbinding nog in stand is en wanneer er 1 is weggevallen probeert hij deze te herstellen. Dit werkt allemaal naar behoren behalve dat het afsluiten of uitloggen problemen oplevert.

Heeft iemand een oplossing voor dit probleem?

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.547
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #24 Gepost op: 11 juni 2024, 18:27:48 »
Geen oplossing, maar dit lijkt me een bug in de scripteditor. Die genereert blijkbaar een app die niet reageert op een sluiten opdracht.  Ik kon mijn test app wel gewoon via het quit commando sluiten.
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #25 Gepost op: 12 juni 2024, 11:18:36 »
Dat zou dan een vervelende bug zijn. Vreemde is wel dat het lijkt of alleen het script dat mijn externe NAS benadert problemen heeft met het afsluiten. Het script dat de NAS in het thuisnetwerk benadert sluit wel netjes af.....

Wellicht een idee om eerst te proberen om 1 script te maken (ipv 2 scripts) en dan te bedenken hoe we een shutdown commando kunnen toevoegen.

Ik gebruik momenteel 2x dit script (1x voor NAS thuisnetwerk en 1x met een 30 seconde vertraging voor NAS extern)

Script 1

on idle
mount_share("smb", "Lisa", "xx.xx.xx.xx", "Data")
return 120
end idle


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 (list disks) 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

Script 2 (wordt doormiddel van de app Autostarter 30 seconde later opgeroepen)

on idle
mount_share("smb", "Lisa", "xx.xx.xx.xx", "Backup Lisa")
return 120
end idle


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 (list disks) 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
Hoe kan ik deze 2 scripts combineren waarin na opstarten Mac direct verbinding wordt gemaakt met de NAS in het thuisnetwerk en met een 30 seconde vertraging (wanneer OpenVPN is opgestart en verbonden) verbinding gemaakt met de NAS extern?

Wanneer dat werkend is kunnen we kijken of een commando mogelijk is om het script te stoppen wanneer de Mac afsluit of uitlogt.

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.547
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #26 Gepost op: 12 juni 2024, 14:58:02 »
Volgens mij kom je op zoiets. (ongetest)

global eerste_keer
set eerste_keer to true

on idle
if eerste_keer then
mount_share("smb", "Lisa", "xx.xx.xx.xx", "Data")
set eerste_keer to false
return 30
else
mount_share("smb", "Lisa", "xx.xx.xx.xx", "Data")
mount_share("smb", "Lisa", "xx.xx.xx.xx", "Backup Lisa")
return 120
end if
end idle


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 (list disks) 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

De eerste keer probeert hij alleen de ene disk te mounten en wacht dan 30 seconden.  Daarna probeert hij beide te mounten en wacht 120 sconden
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #27 Gepost op: 12 juni 2024, 18:08:57 »
Wanneer ik het script opsla als een app die niet wordt gesloten na de uitvoerhandler en ik open die vervolgens krijg ik de foutmelding:

De variabele eerste_keer is niet gedefinieerd

De variabele eerste_keer is niet gedefinieerd. (-2753)

Offline Briolet

  • Global Moderator
  • MVP
  • *
  • Bedankjes
  • -Gegeven: 180
  • -Ontvangen: 2667
  • Berichten: 16.547
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #28 Gepost op: 12 juni 2024, 20:48:39 »
Ik ben niet echt thuis in de apple script taal.  Ik zou verwachten dat die variabele globaal gedefinieerd wordt en dus ook binnen die idle loop bestaat.

Ik heb even gezocht en je moet globale variabelen inderdaad expliciet definieren.

Het script moet dus beginnen met

global eerste_keer
(Ik heb het vorige script hierop aangepast.)

Het voelt voor mij een beetje vreemd dat variabelen binnen een functie automatisch gedefinieerd worden door ze te gebruiken, maar daarbuiten niet.  Voor de fanatiekeling: "Apple Script language guide"
  • Mijn Synology: DS415+
  • HDD's: 3x 3TB in SHR
  • Extra's: DS212J, RT1900ac

Offline FCU4ever

  • Bedankjes
  • -Gegeven: 4
  • -Ontvangen: 5
  • Berichten: 58
Re: Automatisch verbinden netwerk schijf blijven proberen
« Reactie #29 Gepost op: 12 juni 2024, 21:01:30 »
Sowieso hartstikke fijn dat u probeert te helpen.

De errorcode is veranderd naar:
1 kan niet in type boolean worden omgezet. (-1700)


 

Video Station indexeert niet (automatisch)

Gestart door BlackvibesBoard Video Station

Reacties: 7
Gelezen: 4558
Laatste bericht 12 december 2016, 17:49:12
door Ben(V)
DS Photo+ photo Backup werkt niet automatisch/in achtergrond

Gestart door rtf74Board iOS Apps (iPhone, iPad en iPod)

Reacties: 25
Gelezen: 21841
Laatste bericht 20 juli 2016, 23:56:16
door Sylvester
NZBget automatisch laten downloaden van nzb

Gestart door sietBoard NZBGet

Reacties: 2
Gelezen: 4465
Laatste bericht 17 juni 2011, 10:10:43
door ronaldvh
SSL certificaat automatisch vernieuwen

Gestart door RubenosBoard Synology DSM algemeen

Reacties: 2
Gelezen: 829
Laatste bericht 24 april 2023, 13:33:24
door jr212
VERPLAATST: Automatisch Hyper Backup terugplaatsen

Gestart door BirdyBoard Synology DSM algemeen

Reacties: 0
Gelezen: 1150
Laatste bericht 31 juli 2018, 15:55:04
door Birdy