SSH in Gambas benutzen

Schnipsel, Ideen und Lösungsvorschläge

SSH in Gambas benutzen

Beitragvon PNS-Richi » So 1. Jan 2006, 15:59

Hier sieht man ein Beispiel mit der "Pseudo Console".

Dazu wird ein TreeView Control als Menü verwendet. Mit hilfe diesen Menüs können belibiege Scripte am Server ausgeführt werden oder Befehlsreihenfolgen.

Zuerst wird eine Console gestartet -> "Bash" -> "Konsole" müsste auch funktionieren. Danach wenn man auf Verbinden klickt wird erst ssh gestartet. Dies st nur mal ein kleines Beispiel ohne Fehlerabfragen ob das IP oder User feld leer ist.

Dann öffnet sich ein Fenster das nach einem Passwort fragt.
Nun läuft SSH :)

Screenshot:
http://www.pn-solution.de/pns-kis-admin ... alpha8.png
http://www.pn-solution.de/pns-kis-admin ... alpha9.png
http://www.pn-solution.de/pns-kis-admin ... lpha10.png

Code: Alles auswählen

' Gambas class file
PRIVATE pSSH AS Process

PUBLIC SUB Form_Open()
DIM picServer32 AS NEW Picture
DIM picGameserver32 AS NEW Picture

DIM picShellScript22 AS NEW Picture

picServer32.Load("bilder/32/server.png")
picGameServer32.Load("bilder/32/gameserver.png")

picShellScript22.Load("bilder/22/shellscript.png")

'Server
tvmenu.Add("Server", "Server", picServer32)
tvmenu.Add("Server backup", "Server backup", picShellScript22, "Server")
tvmenu.Add("MySQL backup", "MySQL backup", picShellScript22, "Server")

'Gameserver
tvmenu.Add("GameServer", "GameServer", picGameServer32)

pSSH = EXEC ["bash", "--noediting"] FOR READ WRITE

END

PUBLIC SUB cmdVerbinden_Click()

txtBefehl.text = "ssh " & txtUSer.text & "@" & txtIP.text
cmdOK_Click
END

PUBLIC SUB Process_Read()

DIM Puffer AS String

LINE INPUT #LAST, Puffer

Puffer = Conv$(Puffer, Desktop.Charset, System.Charset)

txtConsole.text = txtConsole.text & Puffer & gb.NewLine
txtConsole.Pos = txtConsole.Length

END

PUBLIC SUB Process_Error(Puffer AS String)

txtConsole.Text = txtConsole.Text & Puffer & gb.NewLine

END

PUBLIC SUB cmdOK_Click()

DIM Puffer AS String

Puffer = txtBefehl.Text & gb.NewLine
Puffer = Conv$(Puffer, Desktop.Charset, System.Charset)

txtConsole.Text = txtConsole.Text & "#" & Puffer

PRINT #pSSH, Puffer;
txtBefehl.text = ""

END

PUBLIC SUB tvMenu_Click()

SELECT CASE tvmenu.Item.Key
  CASE "Server backup"
    txtBefehl.text = "/root/sh-scripts/server-backup.sh"
    cmdOK_Click
  CASE "MySQL backup"
    txtBefehl.text = "/root/sh-scripts/mysql-backup.sh"
    cmdOK_Click
END SELECT

END



lg Richi
Benutzeravatar
PNS-Richi
Foriker
 
Beiträge: 153
Registriert: Do 29. Dez 2005, 02:24
Wohnort: Österreich, Ebreichsdorf

Zurück zu Schnipsel / HOWTO's

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast