• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung

Prüfen ob NAS erreichbar ist

mi2g

Roter Delicious
Registriert
25.09.07
Beiträge
92
Hallo zusammen

Ich habe ein Script im Automator erstellt, welches mir meine NAS Freigaben zu Hause mountet. Dieses Script wird jedes mal automatisch gestartet, auch z.b. in der schule oder auf der arbeit und dort findet es das NAS natürlich nicht.

Mein Script sieht so aus:

on run {input, parameters}

tell application "Finder"
activate
mount volume "afp://192.168.1.15/Data/"
mount volume "afp://192.168.1.15/HD Filme/"
mount volume "afp://192.168.1.15/video/"
mount volume "afp://192.168.1.15/music/"
mount volume "afp://192.168.1.15/photo/"

end tell

return input
end run

Wie muss ich mein Script ergänzen, damit es nur ausgeführt wird, wenn das NAS verfügbar ist? Das müsste man wahrscheinlich mit einem Ping machen oder?

Danke schonmal.

Gruss mi2g
 

brunbjoern

Idared
Registriert
23.07.05
Beiträge
26
Hi,

probier es mal aus:

tell application "Finder"
try
set ping_result to (do shell script "ping -c 1 -t 1 -q " & 192.168.1.15)
mount volume "afp://192.168.1.15/Data/"
on error
--display dialog "Der Server ist nicht erreichbar."
end try
end tell

Ist allerdings nicht von mir, sondern aus den Untiefen des Netzes.


Viele Grüße,
brunbjoern
 

mi2g

Roter Delicious
Registriert
25.09.07
Beiträge
92
danke dir schonmal.

jetzt sieht es so aus:
on run {input, parameters}
tell application "Finder"
try
set ping_result to (do shell script "ping -c 1 -t 1 -q " & 192.168.1.15)
mount volume "afp://192.168.1.15/Data/"
mount volume "afp://192.168.1.15/HD Filme/"
mount volume "afp://192.168.1.15/video/"
mount volume "afp://192.168.1.15/music/"
mount volume "afp://192.168.1.15/photo/"
on error
--display Dialog "Der Server ist nicht erreichbar."
end try
end tell
return input
end run
wenn ich das ausführe, kommt die Meldung:
Es wurde "","" erwartet, aber eine "Fliesskommazahl"wurde gefunden.


edit:
Ok habe jetzt die IP mit " IP " ergänzt und jetzt kommt der fehler nicht mehr.

jedoch wenn ich es ausführe kommt jetzt keine Rückmeldung, dass das NAS nicht erreichbar ist (momentan bin ich in der Schule und das NAS ist nicht erreichbar).

edit2: hehe so jetzt hab ich das mit dem dialog auch hinbekommen. -- so kommentiert man wahrscheinlich beim automator, habe diese jetzt wegenommen und ich bekomme auch eine Rückmeldung.

Momentan dauert das ausführen des Scripts ca. 10 - 15 sekunden. kann man diese zeit noch verringern oder nicht?
 
Zuletzt bearbeitet:

Scotch

Bittenfelder Apfel
Registriert
02.12.08
Beiträge
8.055
Ich habe keine Ahnung von Applescript, aber ich vermute, dein Problem ist, dass du die Fehlerbedingung erst nach den mount-Befehlen abfragst, d.h. auch bei erfolglosem ping (der kann mit -t 1 ja maximal eine Sekunde kosten) wierd versucht zu mounten. Du musst die Abbruchbedingung hinter den ping und vor die mount-Befehle packen. Ist wahrscheinlich ziemlich einfach, wenn man weiss, wie man in Applescript Anweisungsblöcke klammert ;)

Just my 2c,
Dirk
 

brunbjoern

Idared
Registriert
23.07.05
Beiträge
26
Sorry, Ich hab Anführungszeichen vergessen:

tell application "Finder"
try
set ping_result to (do shell script "ping -c 1 -t 1 -q " & "192.168.1.15")
mount volume "afp://192.168.1.15/Data/"
on error
--display dialog "Der Server ist nicht erreichbar."
end try
end tell

Ich weiss nicht, ob das im Automator auch so läuft, ich nutze immer den AppleScript-Editor.
Kann auch sein, dass das so gar nicht läuft, wie gesagt, ich hab das irgendwann mal aus dem Netz gezogen.
 

mi2g

Roter Delicious
Registriert
25.09.07
Beiträge
92
kein problem.


wie müsste das ganze aussehen, wenn direkt nach dem ping abgebrochen wird?
 

oshovah

Fuji
Registriert
31.08.10
Beiträge
36
Hallo Leute

Super Sache, so etwas habe ich gesucht. Jetzt brauche ich nur noch ein Programm, welches dieses Script auch nach dem Stand-By ausführt.

Hier noch das, von mir angepasste Script:

-- Server Check
my checkServer("192.168.1.36")

on checkServer(ServerIP)
try
set t to do shell script "ping -c1 " & ServerIP
if t contains "0% packet loss" then
mount volume "afp://192.168.1.36/Movie"
else
display dialog "Verbindung zum Movie-Server verlieft mit grossen Packet verlusten"
end if
on error
display dialog "Verbindung zum Movie-Server nicht möglich"
end try
end checkServer
Die beiden "display dialog" Meldungen habe ich auskommentiert (-- für auskommentieren), damit beim starten keine Meldungen erscheinen. Die nerven nur. Das Script mit dem AppleScript-Editor als Programm speichern und nie mehr mühsam von Hand, Laufwerke Mounten.

Gruss oshovah