日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java調用遠程服務器的shell腳本以及停止的方法實現

瀏覽:157日期:2022-08-15 13:37:18

最近接了個需求,要求遠程調shell腳本,你沒聽錯!!!需求就一句話,咱是誰,咱是優秀的開發選手。考慮再三,有兩種實現方式:

方案一:腳本所在服務器安裝一個客戶端,也就是自己寫的一個小程序,本地通過端口調目標服務器的程序,然后程序調本機上的shell腳本!

優點:通過端口調用,用戶不用暴露服務器的賬號密碼,安全性高

缺點:我們需要一直維護這個客戶端程序,而且每接入一臺服務器,都得安裝該客戶端,另外非常考驗客戶端程序的健壯性。

方案二:本地直接通過IP,服務器賬號密碼調遠程服務器的shell腳本

優點:代碼易開發,擴展時只用擴展服務端代碼即可

缺點:用戶服務器的賬號密碼會暴露給服務端,密碼安全問題

把每種方案的優缺點匯報給leader,leader說:按第二種來吧

來吧!!開干,廢話不多說,直接上代碼:

導入程序所需的軟件包:

<dependency> <groupId>org.jvnet.hudson</groupId> <artifactId>ganymed-ssh2</artifactId> <version>build210-hudson-1</version></dependency>

程序涉及的demo:

import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import java.nio.charset.Charset; import org.apache.commons.io.IOUtils; import ch.ethz.ssh2.ChannelCondition;import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler; public class RemoteShellExecutor { private Connection conn; /** 遠程機器IP */ private String ip; /** 用戶名 */ private String osUsername; /** 密碼 */ private String password; private String charset = Charset.defaultCharset().toString(); private final String GET_SHELL_PID = 'ps -ef | grep ’%s’ | grep -v grep |awk ’{print $2}’'; private final String KILL_SHELL_PID = 'kill -15 %s'; private static final int TIME_OUT = 1000 * 5 * 60; /** * 構造函數 * @param ip * @param usr * @param pasword */ public RemoteShellExecutor(String ip, String usr, String pasword) { this.ip = ip; this.osUsername = usr; this.password = pasword; } /** * 登錄 * @return * @throws IOException */ private boolean login() throws IOException { conn = new Connection(ip); conn.connect(); return conn.authenticateWithPassword(osUsername, password); } /** * 執行腳本 * * @param cmds * @return * @throws Exception */ public ExecuteResultVO exec(String cmds) throws Exception { InputStream stdOut = null; InputStream stdErr = null; ExecuteResultVO executeResultVO = new ExecuteResultVO(); String outStr = ''; String outErr = ''; int ret = -1; try { if (login()) { // Open a new {@link Session} on this connection Session session = conn.openSession(); // Execute a command on the remote machine. session.execCommand(cmds);stdOut = new StreamGobbler(session.getStdout()); outStr = processStream(stdOut, charset);stdErr = new StreamGobbler(session.getStderr()); outErr = processStream(stdErr, charset);session.waitForCondition(ChannelCondition.EXIT_STATUS, TIME_OUT);System.out.println('outStr=' + outStr); System.out.println('outErr=' + outErr);ret = session.getExitStatus(); executeResultVO.setOutStr(outStr); executeResultVO.setOutErr(outErr); } else { throw new Exception('登錄遠程機器失敗' + ip); // 自定義異常類 實現略 } } finally { if (conn != null) { conn.close(); } IOUtils.closeQuietly(stdOut); IOUtils.closeQuietly(stdErr); } return ret; } /** * @param in * @param charset * @return * @throws IOException * @throws UnsupportedEncodingException */ private String processStream(InputStream in, String charset) throws Exception { byte[] buf = new byte[1024]; StringBuilder sb = new StringBuilder(); int len = 0; while ((len=in.read(buf)) != -1) { sb.append(new String(buf,0,len, charset)); } return sb.toString(); } public static void main(String args[]) throws Exception { //調遠程shell RemoteShellExecutor executor = new RemoteShellExecutor('192.168.234.123', 'root', 'beebank'); System.out.println(executor.exec('sh /data/checkMysql.sh')); //獲取遠程shell 進程 pid ExecuteResultVO executeResultVO = executor.exec(String.format(GET_SHELL_PID,'sh /data/checkMysql.sh')); //殺掉shell進程 ExecuteResultVO executeResultVO1 = executor.exec(String.format(KILL_SHELL_PID ,executeResultVO.getOutStr())); } public class ExecuteResultVO<T>{ private String outStr; private String outErr; //省略get set }}

經過測試也確實好用啊,大家可以根據這個demo進行相應的修改。到此這篇關于java調遠程服務器的shell腳本以及停止的方法實現的文章就介紹到這了,更多相關java調遠程shell腳本內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产调教一区二区三区| 久久一区二区三区喷水| 日韩免费高清| 国产亚洲精品美女久久 | 99精品在线免费在线观看| 免费亚洲一区| 国产精品sm| 国产精品天堂蜜av在线播放| 日韩极品在线观看| 日韩成人在线看| 亚洲人成精品久久久| 鲁大师影院一区二区三区| 欧美成人基地 | 日韩一区二区在线免费| 麻豆精品视频在线观看| 国产另类在线| 国产精品一区二区99| 欧美久久一区二区三区| 国产日韩欧美中文在线| 婷婷久久免费视频| 亚洲精品国产日韩| 午夜久久免费观看| 亚洲天堂av影院| 精品久久在线| 国产精品白浆| 国产一区二区三区探花| 中文字幕在线视频久| 免费高潮视频95在线观看网站| 久久久久久久久丰满| 亚洲国产一区二区在线观看 | 中文字幕一区二区三区四区久久 | 欧美丝袜一区| 9色精品在线| 亚洲精品高潮| 青青草视频一区| 国产精品最新| 欧美国产精品| 在线一区av| 久久蜜桃资源一区二区老牛| 久久久人人人| 国产精品普通话对白| 日韩一区网站| 国产精品99久久久久久董美香| 国产欧美自拍| 国产一区二区三区成人欧美日韩在线观看| 国产成年精品| 99riav1国产精品视频| 亚洲日本在线观看视频| 亚洲免费观看高清完整版在线观| 久久精品99国产精品日本| 麻豆国产在线| 好吊日精品视频| 涩涩涩久久久成人精品| 99国内精品| 日本三级亚洲精品| 高清在线一区| 亚洲在线免费| 国产精品日本一区二区三区在线| 日韩成人精品一区二区三区 | 成人在线网站| 美女精品网站| 久久影院一区二区三区| 99riav1国产精品视频| 国产精区一区二区| 国产精品91一区二区三区| 中文字幕亚洲精品乱码| 国产精品成人一区二区不卡| 久久成人国产| 久久电影tv| 日本国产一区| 久久精品99久久无色码中文字幕| 精品1区2区3区4区| 日韩影院在线观看| 国产精品极品国产中出| 黄色成人精品网站| 亚洲天堂av资源在线观看| 亚洲不卡av不卡一区二区| 亚洲黄页一区| 日本不卡一区二区三区| 一区二区高清| 精品久久91| 国产91在线精品| 另类国产ts人妖高潮视频| 日韩av不卡一区二区| 国产日韩一区二区三免费高清| 蜜臀va亚洲va欧美va天堂| 福利欧美精品在线| 久久国产小视频| 91亚洲精品在看在线观看高清| 久久精品不卡| 美女久久99| 视频一区欧美精品| 亚洲性色av| 国产精品极品在线观看| 亚洲人成网77777色在线播放| 日韩精品电影| 欧美三级第一页| 免费观看在线色综合| 精品日韩视频| 国产探花一区二区| 中文在线不卡| 国产精品美女午夜爽爽| 亚洲女同中文字幕| 日韩精品不卡一区二区| 卡一精品卡二卡三网站乱码| 91午夜精品| 日韩一区二区三免费高清在线观看| 蜜臀91精品国产高清在线观看| 国产精品二区不卡| 国产精品久久久久av蜜臀| 蜜桃久久久久久| 国产二区精品| 亚洲不卡av不卡一区二区| 在线一区av| 国产一区二区三区精品在线观看| 欧美日韩一视频区二区| 欧美另类综合| 日韩精品免费一区二区在线观看| 九九九精品视频| 国产欧美午夜| 国产麻豆精品| 国产精品一区二区三区四区在线观看| 日欧美一区二区| 亚洲精选91| 男女性色大片免费观看一区二区| 久久久久99| 精品三级久久| 国产精品毛片久久| 久久亚洲精精品中文字幕| 日韩一二三区在线观看| 日本亚洲视频在线| 蜜桃视频在线观看一区| 亚洲另类av| 日本视频中文字幕一区二区三区| 亚洲男人在线| 日韩久久99| 欧美一级二级三级视频| 国产亚洲一区二区三区啪| 国产欧美欧美| 国产精品白丝久久av网站| 毛片不卡一区二区| 狂野欧美性猛交xxxx| 成人高清一区| 欧美日韩中文一区二区| 亚洲免费成人| 蜜桃久久久久久| 视频在线在亚洲| 免费成人在线影院| 日本色综合中文字幕| 久久99影视| 亚洲成人不卡| 久久成人一区| 日韩精品久久久久久久软件91| 蜜臀av一区二区三区| 日韩精品三级| 久久网站免费观看| 亚洲bt欧美bt精品777| 麻豆一区在线| 国产模特精品视频久久久久| 国产精品香蕉| 亚洲国产一区二区三区在线播放 | 亚洲影视一区| 激情不卡一区二区三区视频在线| 国产精品毛片| 国产成人a视频高清在线观看| 日韩一区二区三区精品| 快she精品国产999| 不卡在线一区| 97成人在线| 国产精品视频一区视频二区| 欧美日韩99| 综合在线一区| 亚久久调教视频| 日韩欧美精品| 日韩超碰人人爽人人做人人添| 婷婷国产精品| 欧美一区91| 视频一区日韩精品| 精品视频91| 欧美一区三区| 亚洲乱亚洲高清| 久久av超碰| 首页国产欧美久久| 午夜精品网站| 亚洲中午字幕| aa国产精品| 免费视频亚洲| 亚洲最大av| 99视频精品全国免费| 免费亚洲婷婷| 亚洲人成在线网站| 999精品一区| 久久国产精品免费精品3p| 亚洲资源av| 国产精品丝袜xxxxxxx| 国产一区成人| 婷婷亚洲成人| 欧美一区网站| 欧美福利一区| 国产高潮在线|