NAS-Script verbessern

Till00

Till00

Aktives Mitglied
Thread Starter
Dabei seit
12.08.2010
Beiträge
1.002
Reaktionspunkte
82
Hallo Leute,

Ich habe hier ein AppleScript, welches mich bei jedem Systemstart mit meinen Omega-NAS verbindet. Mein „Problem“ ist, dass es auch versucht eine Verbindung aufzubauen, wenn ich nicht zu Hause bin, also das NAS auch nicht da ist. Der Finder spuckt dann fünf Fehlermeldungen (wegen fünf Shares auf dem NAS) aus.
Meine Idee war, das Script erst überprüfen zu lassen, ob es "zu Hause ist“ (z.B. über die MAC-Adresse des Reuthers). Ist das mit AS möglich?
Es würde mir im Prinzip auch raten, die Fehlermeldung zu Unterbinden.

Das Script:
Code:
try
		mount volume "smb://192.168.2.111/movies/"
		mount volume "smb://192.168.2.111/music/"
		mount volume "smb://192.168.2.111/ActiveFolders/"
		mount volume "smb://192.168.2.111/photos/"
		mount volume "smb://192.168.2.111/public/„
end try
 
Ich machs so:

Code:
set command to "ping -c 1 192.168.xxx.xx"

try
	if ((do shell script command) contains " packets received, 0.0% packet loss") then
		mount volume "afp://User:PW@Adresse/ShareA"
		mount volume "afp://User:PW@Adresse/ShareB"
		mount volume "afp://User:PW@Adresse/ShareC"
		
		
	end if
on error
	--display dialog "connection failed" giving up after 1
end try
 
  • Gefällt mir
Reaktionen: Till00
oder die location abfragen?
Code:
tell application "System Events"
	tell network preferences
		set activeLocation to the name of current location
	end tell
end tell
 
Sorry, aber, Location = Umgebung, oder?
Die steht bei mir aber im auf Automatisch...
 
Was bewirkt:
Code:
	--display dialog "connection failed" giving up after 1

Bei mir kommt da kein Fenster oder ähnliches.
Wenn ich keine Verbindung habe, läuft das Script eine Gewisse Zeit lang, ich nehme mal an das liegt an den Pings, kann man die Anzahl irgendwie begrenzen? :)
 
das -c 1 begrenzt die pings schon auf einen...

und das -- heißt, die zeile ist auskommentiert
 
  • Gefällt mir
Reaktionen: Till00
Die SSID bekommst du auch mit

Code:
do shell script "System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport --getinfo | grep -w 'SSID' | sed s/' *SSID: '//"
 
Erstmal danke an alle, ich habe mich jetzt mal an das Script von Bozol gesetzt:
Code:
set command to "ping -c 1 192.168.2.111"

try
	if ((do shell script command) contains " packets received, 0.0% packet loss") then
		mount volume "smb://192.168.2.111/movies/"
		mount volume "smb://192.168.2.111/music/"
		mount volume "smb://192.168.2.111/ActiveFolders/"
		mount volume "smb://192.168.2.111/photos/"
		mount volume "smb://192.168.2.111/public/"
		
		
	end if
on error
	display dialog "Es konnte keine Verbindung aufgebaut werden." buttons {"OK"} with icon 2 giving up after 3
end try

Eine Frage habe ich aber dennoch: Ich hätte gerne einen „Nochmal“ oder „retry“ Button, der das Script ein zweites mal laufen lässt, der zweite Button ist nicht das Problem, aber wie kriegt der eine Funktion?
 
Zum Beispiel so:

Code:
set command to "ping -c 1 192.168.2.111"
set checkVar to false
repeat until checkVar is true
	try
		
		if ((do shell script command) contains " packets received, 0.0% packet loss") then
			mount volume "smb://192.168.2.111/movies/"
		mount volume "smb://192.168.2.111/music/"
		mount volume "smb://192.168.2.111/ActiveFolders/"
		mount volume "smb://192.168.2.111/photos/"
		mount volume "smb://192.168.2.111/public/"
			
		end if
	on error
		display dialog "Es konnte keine Verbindung aufgebaut werden." buttons {"OK", "Nochmal"} with icon 2 giving up after 3
		if button returned of result is "OK" then
			set checkVar to true
		end if
	end try
end repeat
 
  • Gefällt mir
Reaktionen: Till00
Okay, ist ganz gut, das Problem ist nur, dass das Fenster sich nach drei Sekunden selbst schließt und auch in diesem Fall das Script abgebrochen werden soll...

Habe es jetzt mit
Code:
[COLOR="red"]set command to "ping -c 1 192.168.2.111"
set checkVar to false
repeat until checkVar is true
	try
		if ((do shell script command) contains " packets received, 0.0% packet loss") then
			mount volume "smb://192.168.2.111/movies/"
			mount volume "smb://192.168.2.111/music/"
			mount volume "smb://192.168.2.111/ActiveFolders/"
			mount volume "smb://192.168.2.111/photos/"
			mount volume "smb://192.168.2.111/public/"
			
			
		end if
	on error
		display dialog "Es konnte keine Verbindung aufgebaut werden." buttons {"Nochmal", "OK"} with icon stop giving up after 3
	[B]	if button returned of result is "OK" then
			set checkVar to true
		else if button returned of result is "Nochmal" then
			set checkVar to false
		else
			set checkVar to true
		end if
	end try[/B]
end repeat[/COLOR]
gelöst

EDIT: geht doch nicht; wenn denn nämlich wirklich eine Verbindung aufgebaut werden kann, läuft es einfach immer wieder durch... :(

EDIT2: habs jetzt, das Funktionniert:

Code:
set command to "ping -c 1 192.168.2.111"
set checkVar to false
repeat until checkVar is true
	try
		if ((do shell script command) contains " packets received, 0.0% packet loss") then
			mount volume "smb://192.168.2.111/movies/"
			mount volume "smb://192.168.2.111/music/"
			mount volume "smb://192.168.2.111/ActiveFolders/"
			mount volume "smb://192.168.2.111/photos/"
			mount volume "smb://192.168.2.111/public/"
			set checkVar to true
		end if
	on error
		display dialog "Es konnte keine Verbindung aufgebaut werden." buttons {"Nochmal", "OK"} with icon stop giving up after 3
		if button returned of result is "OK" then
			set checkVar to true
		else if button returned of result is "Nochmal" then
			set checkVar to false
		else
			set checkVar to true
		end if
	end try
end repeat
 
  • Gefällt mir
Reaktionen: Meilenstein
Finde das Skript ganz pfiffig...
Wie stelle ich es an, das es automatisch beim hochfahren des Betriebssystemes gestartet wird? Mit Apple Script Editor ein Droplet/Programm oder Skriptfile erstellen und dieses dann im Benutzeraccount bei den Autostartobjekten hinzufügen?
Wie muß der mount volume Befehl im Script geändert werden wenn man ein Passwort vergeben hat?
Beispiel:
IP: 192.168.178.1
Ordner: Public
Benutzername: Administrator
Password: Admin

Für alle die es noch nicht kennen. Benutze bisher das kleine Programm AutomountMaker. Funktioniert auch sehr gut...
 
Also, das Script als Programm aus dem AppleScript-Editor heraus speichern und dann unter Systemeinstellungen -> Benutzer -> Anmeldeobjekte hinzufügen.
Mit dem Passwort habe ich das einfach so gelöst; Beim ersten mal öffnet der Finder ein Fenster, bei dem man Benutzer und Passwort eintragen muss, hier einfach den Haken für das Speichern des/der Passwört(er) im Schlüsselbund setzten und beim nächsten mal fragt er nicht mehr.
Andere Möglichkeit, siehe Post 2, ich habe das aber noch nicht ausprobiert und kann dir daher auch nicht sagen, ob das auch mit Samba-Shares funktioniert. ;)
 
Ist ein bischen cryptisch...
mount volume "afp://User:pW@Adresse/ShareA"
Für mein Beispiel dann folgendermaßen?
mount volume "afp://Administrator:Admin@192.168.178.1/Public"

Wäre das so richtig?
Für Samba halt dann entsprechend smb anstelle afp
 
Ja das geht so. Aber ich empfehle dir dein Passwort nicht im Skript zu speichern, sonst kann das jeder lesen.
 
Leute, ich habe ein Problem; ich logge mich auf meinen NAS als „Gast“, also ohne Kennwort, ein. Unter SL hat das auch immer gut funktioniert, einfach beim ersten mal als die Passwortabfrage kam bei „Benutzer“ „guest“ eingetragen und das Passwort-Feld leergelassen, Passwort im Schlüsselbund speichern angehakt und die Sache war gegessen.
Seit Lion geht das aber nicht mehr und so fragt mein Rechner mich jedes mal, wenn ich mich mit meinem Script mit dem NAS verbinden will, nach dem Passwort...
Gibt es eine Möglichkeit das irgendwo zu speichern bzw. diese Nachfrage zu unterbinden und sich Standardmäßig als Gast zu verbinden?
 
Probier mal
Code:
...
mount volume "smb://guest:@192.168.2.111/music/"
...
 
  • Gefällt mir
Reaktionen: Till00
WOW, du bist genial :)
Auf die Idee war ich auch schon gekommen, allerdings ohne den Doppelpunkt... :D
Danke!
 
Besten Dank

Till00 Ganz lieben Dank für Deine Arbeit und Deinen CODE unter Edit2

Funktioniert Tipp-Top und ich habe alle meine Leider und Daten wieder....

Danke:cake:
 
Tolles Skript! Vielen Dank dafür!!!
Habt ihr zufällig eine Idee, wie ich es schaffe mich mit unterschiedlichen Zugangsdaten bei den verschiedenen Volumen einzuwählen?
 
siehe Post #13

Oder einfach wenn er nach dem Paswort fragt das richtige Passwort eingeben und im Schlüsselbund speichern.
 
  • Gefällt mir
Reaktionen: Meilenstein
Zurück
Oben Unten