Hallo Zusammen,
ich möchte von meinem Lokalen Arbeitsplatzrechner (Windows) ein shell script auf einem entfernten Rechner (Linux) starten.
Ich verwende die jcraft.jsch Bibliothek, über die ich auch hier im Forum gestolpert bin.
Die Verbindung zum Host ist kein Problem und ich kann auch jeden x-Beliebigen Linuxbefehl absetzen den er mir problemlos ausführt. Nur ein skript bekomme ich nicht gestartet... Kann mir da jemand helfen?
Hier ist der Code den ich verwende:
Wenn ich anstelle dieser Codezeile
irgendeinen anderen Befehl eintippe (z.B. "mkdir temp") funktioniert alles wunderbar
Was mache ich denn falsch?
ich möchte von meinem Lokalen Arbeitsplatzrechner (Windows) ein shell script auf einem entfernten Rechner (Linux) starten.
Ich verwende die jcraft.jsch Bibliothek, über die ich auch hier im Forum gestolpert bin.
Die Verbindung zum Host ist kein Problem und ich kann auch jeden x-Beliebigen Linuxbefehl absetzen den er mir problemlos ausführt. Nur ein skript bekomme ich nicht gestartet... Kann mir da jemand helfen?
Hier ist der Code den ich verwende:
Java:
public static void main(String[] arg){
try{
String user="ben";
String host="host";
JSch jsch=new JSch();
Session session=jsch.getSession(user, host, 22);
session.setPassword("pass");
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
String command="/bin/bash 09start";
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(command);
OutputStream out=channel.getOutputStream();
InputStream in=channel.getInputStream();
channel.connect();
if(checkAck(in)!=0){
System.exit(0);
}
command+="\n";
out.write(command.getBytes()); out.flush();
if(checkAck(in)!=0){
System.exit(0);
}
out.close();
channel.disconnect();
session.disconnect();
System.exit(0);
}
catch(Exception e){
System.out.println(e);
}
}
Wenn ich anstelle dieser Codezeile
Java:
String command="/bin/bash 09start";
Was mache ich denn falsch?