Script um eine entfernte Anwendung zu öffnen?

imagiX

Mitglied
Thread Starter
Dabei seit
25.02.2004
Beiträge
33
Reaktionspunkte
0
Hallo zusammen !

Ich hoffe Ihr könnt mir auch diese mal wieder helfen... :)

Ich versuche gerade ein Script zu basteln, das eine auf einem Server liegende Applikation auf dem entfernten Server startet und auf meinem Mac dann das Fenster anzeigt.

Zur Zeit mache ich das "händisch" so:
X11 starten
> xhost +
> telnet -l <user> <server>
> <passwort>
> setenv DISPLAY <mein_mac>:0
> <programmname>

Lässt sich sowas überhaupt mit einem Applescript automatisieren??
Oder brauche ich da ein ganz anderes Script? :confused:

Viele Grüße und Danke schon mal im Voraus für Eure Antworten

Michael
 
nur mit applescript nicht möglich
telnet lässt sich mit expect steuern
wenn die ip statisch ist, kann man im einfachsten Fall das Password direkt im expect script angeben >>send "password\r"<<
mit der Endung .command lässt sich das script dann per Doppelklick starten

sonst braucht man 2 Skripte 1 expect Script und 1 shell oder applescript

expect Script
Code:
#!/usr/bin/expect 

set timeout 20 
set password [lindex $argv 0]

spawn telnet -l <user> <server>
#expect "login:"
#send "user\r"

expect "password: "
#send "password\r"
send $password
send "\r"

expect "# "
send "setenv DISPLAY <mein_mac>:0\r"
expect "# "
send "<programmname>\r"
expect "# "
send "exit\r"

zum Beispiel als expect.sh unter ~/ speichern
expect "password: " und expect "# "
sind nur Beispiele, und müssen durch den tatsächlichen Prompt des Systems ersetzt werden

Applescript
telnet überträgt das password im Klartext (ssh ist idR die bessere Wahl),
um zu vermeiden, dass das password auch noch im Klartext im script steht bietet sich das Apple Schlüsselbund an
Code:
tell application "Keychain Scripting" to set mypassword to password of first generic key of current keychain whose name is "linuxserver"

do shell script "~/expect.sh " & mypassword

Applescript um neuen Schlüssel für Password anzulegen
Code:
property myKeyName : "linuxserver"
property keyDescription : "fuer_telnet_zugang_zum_linuxserver"
property theAppName : "Scriptname"
property theAppVersion : "Rev. 1"
property thePassword : "geheim"

tell application "Keychain Scripting"
	set theKeychain to current keychain
	
	tell theKeychain
		set theKey to every generic key whose name is myKeyName
			set ich to system attribute "USER"
			make new generic key at theKeychain with properties {name:myKeyName, password:thePassword, account:ich, description:keyDescription}
	end tell
end tell

wenn die ip von <mein_mac> nicht statisch ist
Code:
[I]Applescript
[/I]set myip to do shell script "curl -s http://checkip.dyndns.org | egrep -o '[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}' "

do shell script "~/expect.sh " & mypassword & " " & myip

[I]expect Script
[/I]set myip [lindex $argv 1]
send "setenv DISPLAY $myip:0\r"
 
Zurück
Oben Unten