AutoIT und Linux?

  • Salü miteinander

    Ich hab auf meinem Windows Rechner ein AutoIT Programm laufen, welches auf eine Linux Umgebung zugreifen müsste. Genauer gesagt: ich müsste auf dem Zielsystem , welches mit Linux läuft, die DNS Settings des benutzten LAN Adapters auslesen.

    Vielleicht ist schon die Frage danach schwachsinnig, kann sein.. ich frag trotzdem ob das mit AutoIT machbar ist. (ist es?)

    Ich bitte um Feedback.

    Lieber Gruss

    Floh

    Einmal editiert, zuletzt von Landfloh (18. November 2013 um 12:58)

  • Wir machen das über 'plink.exe':

    Spoiler anzeigen
    [autoit]

    ; Benötigt 'plink.exe' aus dem Putty-Paket
    ; getestet mit der Version vom 31.08.2006

    [/autoit] [autoit][/autoit] [autoit]

    $host = "host"
    $user = "root"
    $pass = "password"

    [/autoit] [autoit][/autoit] [autoit]

    $linuxcommand = "cat /etc/resolv.conf;exit"
    $stream = Run('"' & @scriptdir & '\plink.exe" ' & $user & '@' & $host & ' -pw ' & $pass & ' ' & $linuxcommand, @scriptdir, @SW_HIDE,6)
    $out = "STD-OUT:" & @CRLF & @CRLF

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $out &= StdOutRead($stream)
    If @error then ExitLoop
    Wend

    [/autoit] [autoit][/autoit] [autoit]

    Msgbox(0,"Ausgabe",$out)

    [/autoit]

    Achtung: Bei SSH-Verbiindungen muss einmal vorab der Hostkey manuell bestätigt werden !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

    Einmal editiert, zuletzt von Micha_he (18. November 2013 um 12:34)

  • Achtung: Bei SSH-Verbiindungen muss einmal vorab der Hostkey manuell bestätigt werden !

    Jepp, das Problem hatte ich auch mal und das nervte, so habe ich es umgangen:

    [autoit]


    Func _saveplinkRSAkey($plinkHost)
    $plinkFile = @ScriptDir & "\plink.exe"
    $runThis = @ComSpec & " /c " & "echo yes | " & $plinkFile & " " & $plinkHost
    ;ConsoleWrite($runThis & @CRLF)
    $plinkhandle = Run($runThis, "", @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD + $STDERR_CHILD)
    Sleep(5000)
    If ProcessExists($plinkhandle ) Then ProcessClose($plinkhandle )
    EndFunc ;==>_saveplinkRSAkey

    [/autoit]

    Ich rufe vor meinen eigentlichen plink.exe Aufrufen einmal die Funktion zuvor auf - die Stellt eine Verbindung her und beantwortet die Frage ob der Schlüssel ok ist und gespeichert werden soll gleich mit ja.
    Ich nutze das sonst zur Verbindung zu Storage-Systemen, habs mal eben an Linux angepasst ... was besseres als die 5 Sekunden Pause fiel mir gerade nicht ein

    BLinz

    • Offizieller Beitrag

    Hey,

    Ich weiß zwar nicht was plink ausgibt, aber es sollte doch eine Bestätigung bzw Fehlermeldung ausgeben via stdout oder? Falls ja könnte man es mit stdoutRead($pid) herausfinden, dann kommt das doofe Sleep weg ;)

    Gruß,
    Spider