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

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

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

瀏覽:155日期: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久久,三上悠亚国产精品一区二区三区
国产黄大片在线观看| 国产精品亚洲综合久久| 蜜桃视频第一区免费观看| 91成人精品视频| 国产精品99一区二区| av亚洲免费| 六月天综合网| 色综合视频一区二区三区日韩| 免费在线欧美视频| 亚洲免费在线| 午夜精品影院| 中文视频一区| 欧美激情aⅴ一区二区三区| 麻豆久久一区| 久久久久国产一区二区| 国产主播一区| 亚洲精品高潮| 精品九九在线| 中文欧美日韩| 国产精品日本一区二区三区在线| 精品色999| 欧美精品一区二区久久| 日本一区免费网站| 国产一区福利| 亚洲精品影院在线观看| 日韩和欧美一区二区三区| 精品国产18久久久久久二百| 亚洲二区视频| 国产无遮挡裸体免费久久| 亚洲精品永久免费视频| 黄色亚洲免费| 首页国产精品| 蜜臀av一区二区三区| 丰满少妇一区| 国产一区91| 久久av国产紧身裤| 久久99伊人| 国产精品高颜值在线观看| 五月国产精品| 999在线观看精品免费不卡网站| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩成人a**站| 国产午夜精品一区在线观看| 黄色亚洲精品| 亚洲三级欧美| 91国内精品| 综合国产在线| 女人天堂亚洲aⅴ在线观看| 久久精品欧洲| 日韩精品乱码av一区二区| 欧美日韩国产免费观看 | 欧美成人基地| 国产欧美亚洲一区| 99久久婷婷这里只有精品| 欧美激情麻豆| 日韩精彩视频在线观看| 巨乳诱惑日韩免费av| 国产一区亚洲| 极品裸体白嫩激情啪啪国产精品| 97精品在线| 91精品蜜臀一区二区三区在线| 福利精品在线| 激情久久99| 亚洲黄色免费av| 国产成人精品亚洲日本在线观看| 久久这里只有| 日本精品黄色| 偷拍精品精品一区二区三区| 麻豆成人在线观看| 美女久久精品| 日本久久精品| 亚洲高清二区| 美美哒免费高清在线观看视频一区二区| 亚洲欧美日本视频在线观看| 亚洲乱亚洲高清| 国产区精品区| 精品久久美女| 国产99久久久国产精品成人免费| 日韩亚洲精品在线| 日韩欧美久久| 国产精品magnet| 久久国产影院| 中文字幕亚洲影视| 亚洲男人在线| 久久av国产紧身裤| 99久久夜色精品国产亚洲1000部| 六月婷婷一区| 久久a爱视频| 黄色不卡一区| 日本不卡视频一二三区| 国产欧美另类| 香蕉精品久久| 国产精品主播| 欧美理论视频| 国产精品一区二区美女视频免费看| 超碰超碰人人人人精品| 国产美女精品| sm捆绑调教国产免费网站在线观看| 欧美国产一级| 免费国产自线拍一欧美视频| 国产亚洲字幕| 天堂中文av在线资源库| 久久亚洲国产精品一区二区| 欧美精品观看| 久久人人88| 91在线成人| 美女久久网站| 裤袜国产欧美精品一区| 国产免费久久| 亚洲精选91| 在线看片不卡| 日韩精品诱惑一区?区三区| 亚洲精选91| 亚洲欧美一区在线| 麻豆精品视频在线观看| 日韩高清电影一区| 午夜在线精品偷拍| 亚洲国内欧美| 亚洲成人国产| 美女福利一区二区三区| 欧美经典一区| 欧美久久香蕉| 欧美一区不卡| 国产三级一区| 国产精品v一区二区三区| 国产乱码精品| 久久一区国产| 国产精品1luya在线播放| 亚洲免费一区三区| 亚洲tv在线| 欧美三区不卡| 麻豆精品视频在线观看| 美女国产精品久久久| 国产精品一区二区三区四区在线观看 | 石原莉奈在线亚洲三区| 男人的天堂久久精品| 亚洲精品美女| 青草国产精品| 国产精品欧美在线观看| 欧美精品国产| 国产精品一区2区3区| 日韩欧美中文字幕在线视频| 日韩福利视频网| 综合亚洲自拍| 最新国产精品久久久| 玖玖玖国产精品| 欧美中文字幕| 日本久久一区| 蜜桃视频免费观看一区| 日韩一级不卡| 国产精品va视频| 欧美黑人巨大videos精品| 狠狠爱成人网| 999久久久免费精品国产| 亚洲欧美日韩精品一区二区| 精品视频91| 麻豆91在线播放| 狂野欧美性猛交xxxx| 国产精品日韩精品中文字幕| 欧美在线日韩| 久久99久久久精品欧美| 麻豆国产一区| 欧美韩日一区| 亚洲男女av一区二区| 国产精品久久久一区二区| 国产欧美久久一区二区三区| 日韩av网站免费在线| 久久av免费看| 久久视频国产| 激情综合自拍| 亚洲欧美日韩国产一区| 国产亚洲精品美女久久| 国产一区二区三区日韩精品| 日韩高清成人| 喷白浆一区二区| 老司机精品在线| 一区久久精品| 国产精品色婷婷在线观看| 日韩精品永久网址| 视频一区国产视频| 老牛国内精品亚洲成av人片| 狠狠爱www人成狠狠爱综合网| 亚洲v天堂v手机在线| 久久99蜜桃| 国产传媒在线观看| 好看的亚洲午夜视频在线| 亚洲三级网址| 成人久久一区| 国产午夜久久av| 亚洲少妇一区| 亲子伦视频一区二区三区| 日韩av网站在线观看| 久久大逼视频| 久久中文字幕二区| 精品一区二区三区中文字幕| 69堂精品视频在线播放| 欧美日韩精品在线一区| 国产免费久久| 欧美激情麻豆| 久久伊人亚洲|