Script um eine entfernte Anwendung zu öffnen?

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von imagiX, 05.07.2006.

  1. imagiX

    imagiX Thread Starter MacUser Mitglied

    Beiträge:
    33
    Zustimmungen:
    0
    MacUser seit:
    25.02.2004
    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
     
  2. w2lab

    w2lab MacUser Mitglied

    Beiträge:
    125
    Zustimmungen:
    1
    MacUser seit:
    21.02.2006
    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"
    
    
     
Die Seite wird geladen...

Diese Seite empfehlen