SSH mit Jsch, mehrere Befehle senden

Benjamin87

Mitglied
Hallo,

ich versuche mit Jsch über SSH mehrere Befehle auszuführen. Leider finde ich außer Beispiel-Code keinerlei Dokumentation für Jsch ( Wenn jemand eine gute Dokumentation gefunden hat, möge er sich bitte melden ;-) ) .

Die Session ist connected und ich bin bereit um Befehle abzusenden, nur leider weiß ich nicht wie?

Folgendes habe ich bereits umgesetzt (lediglich ein Auszug):

Java:
...
	      session.connect();     
	      Channel channel=session.openChannel("shell");
	      InputStream in=channel.getInputStream();
	      OutputStream out =channel.getOutputStream();
	      channel.connect();     
	      
	      out.write(("eserver1 stop").getBytes());
	      out.write(("\n").getBytes());
	      out.flush();    
	      
    
	      out.write(("su - isas1").getBytes());
	      out.write(("\n").getBytes());
	      out.flush();
	      
	      
	      out.write(("cd /eserver1/tools/misc").getBytes());
	      out.write(("\n").getBytes());
	      out.flush();
	      
	      
	      out.write(("ant import").getBytes());
	      out.write(("\n").getBytes());
	      out.flush();
	      
      
	      out.write(("exit").getBytes());
	      out.write(("\n").getBytes());
	      out.flush();	      
      
	      out.write(("eserver1 start").getBytes());
	      out.write(("\n").getBytes());
	      out.flush();	
...

1. Ist das soweit korrekt?
2. Wie kann ich sehen z.b. in der Console was gerade passiert?
3. das "ant import" benötigt lange, allerdings habe ich das Gefühl, dass er direkt zum nächsten Befehl geht und nicht genügend Zeit lässt um den letzten Befehl auszuführen?
4. Wie könnte ich es vielleicht besser erreichen?

Ich bin dankbar für jegliche Anregung oder Hilfestellung!
 

HoaX

Top Contributor
1. Ist das soweit korrekt?
2. Wie kann ich sehen z.b. in der Console was gerade passiert?
3. das "ant import" benötigt lange, allerdings habe ich das Gefühl, dass er direkt zum nächsten Befehl geht und nicht genügend Zeit lässt um den letzten Befehl auszuführen?
4. Wie könnte ich es vielleicht besser erreichen?

2. wenn 1 richtig ist, dann einfach "in" auslesen?!
 

Benjamin87

Mitglied
Okay, das ganze scheint zu funktionieren.
Ich habe nach jedem flush ein:

Java:
	        while(in.available()>0){
		          int i=in.read(tmp, 0, 1024);
		          if(i<0)break;
		          System.out.print("INPUT 11: " + new
		String(tmp, 0, i));
		        }

Allerdings habe ich das problem, dass "ant import" zwischendurch nichts ausgibt für ne längere Zeit und er deshalb nichts lesen kann und zum nächsten befehl geht. Ich möchte gerne irgendwie überprüfen wann der befehl zuende ist, geht das?
 

Benjamin87

Mitglied
Okay ich habe das ganze jetzt so gelöst, indem ich überprüfe wann das Ende kommt, also die letzte Ausgabe vom ant import nämlich "Total time: 2 minutes 8 seconds" . Ist aber sicherlich keine schöne Lösung, wenn jemand bessere Ideen hat, bitte melden, würde mich freuen.

Java:
			out.write(("ant import").getBytes());
			out.write(("\n").getBytes());
			out.flush();
			Boolean run = true;
			while(run)
			{
			while (in.available() > 0) {
				int i = in.read(tmp, 0, 1024);
				if (i < 0)
					break;
				String test = new String(tmp, 0, i);
				if(test.contains("Total time:")) run = false;
				System.out.print(test);
			}
			}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J jsch copy ist das möglich Netzwerkprogrammierung 11
B JSch Filetransfer ohne KnownHosts Datei? Netzwerkprogrammierung 0
C JSch ist nicht dokumentiert Netzwerkprogrammierung 2
F JSch - inputstream is closed Netzwerkprogrammierung 13
M Socket SFTP mit JSCH - Speedproblem Netzwerkprogrammierung 3
izoards Mehrere TCP Verbindungen auf einen Server [alles Local] Netzwerkprogrammierung 2
Aruetiise Socket Mehrere Clients Netzwerkprogrammierung 4
E Mehrere Sockets Netzwerkprogrammierung 2
C Mehrere Spielewelten im Multiplayer Netzwerkprogrammierung 2
J Framework mehrere Clients/ Server-Broadcast/oracle XE/ XML Netzwerkprogrammierung 1
V Server / mehrere Clients / MySQL / Konzept Netzwerkprogrammierung 2
S Server - Mehrere Klassen sollen Daten senden und empfangen Netzwerkprogrammierung 25
Creylon Socket Mehrere gleichzeitig eingehende Nachrichten Netzwerkprogrammierung 8
N SOCKET mehrere Requests, keep Alive serverspezifisch? Netzwerkprogrammierung 3
7 Mehrere Verbindungen gleichzeitig in einem Thread mit ApacheHTTP Netzwerkprogrammierung 7
Z Socket [Chatprogramm] Mehrere Clients an einen Server Netzwerkprogrammierung 10
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
G Socket Mehrere Clientanmeldungen am Server Netzwerkprogrammierung 13
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
cedi Socket Mehrere Clients an einem Server Netzwerkprogrammierung 4
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
M Jetty Konfiguration mehrere Handler? Netzwerkprogrammierung 2
F UDP Server - mehrere Pakete auf einmal Netzwerkprogrammierung 12
A Mehrere gleich Packete behandeln Netzwerkprogrammierung 4
L Socket Chat Server für mehrere Clients Netzwerkprogrammierung 7
R mehrere MySQL-Zugriffe Netzwerkprogrammierung 3
B Paralleler Dateitransfer: Ein Client - Mehrere Sockets? Wie connecten? Netzwerkprogrammierung 16
S Mehrere Attachments mit JavaMail API auslesen Netzwerkprogrammierung 3
O Mehrere Datei per DataInput/OutputStream über Socket Netzwerkprogrammierung 12
A Datenverteilung: Mehrere Threads verwenden? Netzwerkprogrammierung 4
T Netzwerkchat Problem: Mehrere Nachrichten ~ Anfängerproblem Netzwerkprogrammierung 3
W Bestimmt IP Adresse verwenden wenn man mehrere hat Netzwerkprogrammierung 5
D Clients sollen mehrere Sessions starten Netzwerkprogrammierung 11
A Jakarta Commons HTTPClient: Mehrere Requests gleichzeitig Netzwerkprogrammierung 2
R Mehrere Dateien über einen Socket senden Netzwerkprogrammierung 2
G Nachricht an mehrere Clients schicken Netzwerkprogrammierung 10
L mehrere Streams über einen Socket? Netzwerkprogrammierung 8
V Mehrere Streams durch einen Stream senden Netzwerkprogrammierung 14
E Mehrere / bestimmte Netzwerkkarten ansteuern Netzwerkprogrammierung 10
F Mehrere Attachments mit JavaMail API Netzwerkprogrammierung 2
G Proxy und mehrere Verbindungen Netzwerkprogrammierung 4
G Mehrere SSL Verbindungen Netzwerkprogrammierung 2
A Mit Client auf mehrere Server zugreifen Netzwerkprogrammierung 5
M Mehrere Ports gleichzeitig abhören Netzwerkprogrammierung 5
TRunKX Ein Port mehrere Verbindungen? Netzwerkprogrammierung 7
G Server an mehrere Clients Netzwerkprogrammierung 15
L JavaMail: Automatisches Email Versand (mehrere Empfänger) Netzwerkprogrammierung 4
U Einen HandlerThread, der mehrere Verbindungen verwaltet? Netzwerkprogrammierung 2
X mehrere Request über eine HttpURLConnection Netzwerkprogrammierung 2
B Java+Grbl: G-Code Befehle mit Java an Arduino senden und lesen Netzwerkprogrammierung 1
M Befehle an externes Java-Programm senden Netzwerkprogrammierung 8
C Befehle über ein GUI an Server senden Netzwerkprogrammierung 15
J Befehle an Server senden Netzwerkprogrammierung 5
B Befehle an Gameserver senden bzw. empfangen Netzwerkprogrammierung 2
B befehle auswerten Netzwerkprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben