{"id":568,"date":"2011-03-05T16:27:25","date_gmt":"2011-03-05T14:27:25","guid":{"rendered":"https:\/\/bob-team.de\/wordpress\/?p=568"},"modified":"2011-03-23T10:16:40","modified_gmt":"2011-03-23T08:16:40","slug":"programmaufruf-per-ssh","status":"publish","type":"post","link":"https:\/\/bob-team.de\/wordpress\/2011\/03\/05\/programmaufruf-per-ssh\/","title":{"rendered":"Programmaufruf per SSH"},"content":{"rendered":"<p>Mit der Java-Bibliothek <a href=\"http:\/\/www.jcraft.com\/jsch\/\">JSch<\/a> ist es sehr leicht m\u00f6glich, einen Befehl per SSH auf einem entfernten System auszuf\u00fchren. Folgendes Beispiel f\u00fchrt den Befehl &#8222;ls -ltr&#8220; aus und liefert dessen Ausgabe.<!--more--><\/p>\n<p>[code lang=&#8220;java&#8220;]import java.io.InputStream;<\/p>\n<p>import com.jcraft.jsch.Channel;<br \/>\nimport com.jcraft.jsch.ChannelExec;<br \/>\nimport com.jcraft.jsch.JSch;<br \/>\nimport com.jcraft.jsch.Session;<\/p>\n<p>public class SSHCommandExecutor {<br \/>\n   public static void main(String[] args) {<br \/>\n      String host=&#8220;ssh.journaldev.com&#8220;;<br \/>\n      String user=&#8220;sshuser&#8220;;<br \/>\n      String password=&#8220;sshpwd&#8220;;<br \/>\n      String command1=&#8220;ls -ltr&#8220;;<br \/>\n      try{<br \/>\n         java.util.Properties config = new java.util.Properties();<br \/>\n         config.put(&#8222;StrictHostKeyChecking&#8220;, &#8222;no&#8220;);<br \/>\n         JSch jsch = new JSch();<br \/>\n         Session session=jsch.getSession(user, host, 22);<br \/>\n         session.setPassword(password);<br \/>\n         session.setConfig(config);<br \/>\n         session.connect();<br \/>\n         System.out.println(&#8222;Connected&#8220;);<\/p>\n<p>         Channel channel=session.openChannel(&#8222;exec&#8220;);<br \/>\n         ((ChannelExec)channel).setCommand(command1);<br \/>\n         channel.setInputStream(null);<br \/>\n         ((ChannelExec)channel).setErrStream(System.err);<\/p>\n<p>         InputStream in=channel.getInputStream();<br \/>\n         channel.connect();<br \/>\n         byte[] tmp=new byte[1024];<br \/>\n         while(true){<br \/>\n            while(in.available()>0){<br \/>\n               int i = in.read(tmp, 0, 1024);<br \/>\n               if (i<0) break;\n               System.out.print(new String(tmp, 0, i));\n            }\n            if (channel.isClosed()) {\n               System.out.println(\"exit-status: \"+channel.getExitStatus());\n               break;\n            }\n            try{Thread.sleep(1000);}catch(Exception ee){}\n         }\n         channel.disconnect();\n         session.disconnect();\n         System.out.println(\"DONE\");\n      }catch(Exception e){\n         e.printStackTrace();\n      }\n   }\n}[\/code]\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit der Java-Bibliothek JSch ist es sehr leicht m\u00f6glich, einen Befehl per SSH auf einem entfernten System auszuf\u00fchren. Folgendes Beispiel f\u00fchrt den Befehl &#8222;ls -ltr&#8220; aus und liefert dessen Ausgabe.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-568","post","type-post","status-publish","format-standard","hentry","category-uncategorized","entry"],"_links":{"self":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/568","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/comments?post=568"}],"version-history":[{"count":3,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/568\/revisions"}],"predecessor-version":[{"id":622,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/posts\/568\/revisions\/622"}],"wp:attachment":[{"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/media?parent=568"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/categories?post=568"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bob-team.de\/wordpress\/wp-json\/wp\/v2\/tags?post=568"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}