Linuxコマンドの実行を制御するためにコードを使用して特定の機能を実装する必要がある場合があります。
このタイプの問題については、JSCHを使用して実装できます。特定のコードは次のとおりです。
パブリッククラスcogradientimgfilemanager {private static final logger log = loggerfactory.getLogger(cogradientimgfilemanager.class); private static channelexec channelexec; private static session = null; private static int timeout = 60000; // public static void main(string [] args){try {versousshutil( "10.8.12.189"、 "jmuser"、 "root1234"、22); runcmd( "java-version"、 "utf-8");} catch(exceance e){// dodo auto-generated catch catch( "java -8");} blocke.printstacktrace();}}/***リモートサーバーに接続* @paramホストIPアドレス* @paramユーザー名ログイン名* @paramパスワード* @paramポートポート* @paramポート*/public static versousshutil(string host、ristername、string password、int port:show {log.info ond " username + "、password:" + password + "、port:" + port); jsch jsch = new jsch(); // JSCHオブジェクトセッション= jsch.getSession(username、host、port)を作成します。 //セッションオブジェクトセッションを取得します。SetPassWord(パスワード); //パスワードプロパティconfig = new Properties(); config.put( "stricthostkeychecking"、 "no"); session.setconfig(config); // propertiessession.settimeout(Timeout)を設定します。 // TimeOutSession.Connect()を設定します。 //セッションを介してリンクを作成}/***リモートサーバーでコマンドを実行* @param cmdコマンド文字列を実行する* @param charset encoding* @throws例外*/public static void runcmd(string cmd、string charset)throws exception {channelexec =(channelexec) session.openchannel( "exec"); ChannelExec.setCommand(cmd); ChannelExec.setInputStream(null); ChannelExec.setErrStrem(system.err); channelexec.getinputStream(); bufferedreader reader = new bufberedreader charset.forname(charset))); string buf = null; while((buf = reader.readline()!= null){system.out.println(buf);} reader.close(); channelexec.disconnect();}}}}