日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

還不會用Java操作遠程服務(wù)器?

來源: 責(zé)編: 時間:2024-09-10 09:47:18 107觀看
導(dǎo)讀java操作服務(wù)器JSch 是一個純 Java 實現(xiàn)的 SSH2 客戶端庫,它允許 Java 應(yīng)用程序通過 SSH 協(xié)議連接到 SSH 服務(wù)器,并執(zhí)行命令、傳輸文件等。JSch 是基于 SSH-2 協(xié)議的一個開源項目,廣泛用于需要遠程執(zhí)行命令或文件傳輸?shù)?/div>

java操作服務(wù)器

JSch 是一個純 Java 實現(xiàn)的 SSH2 客戶端庫,它允許 Java 應(yīng)用程序通過 SSH 協(xié)議連接到 SSH 服務(wù)器,并執(zhí)行命令、傳輸文件等。JSch 是基于 SSH-2 協(xié)議的一個開源項目,廣泛用于需要遠程執(zhí)行命令或文件傳輸?shù)?Java 應(yīng)用程序中。k9e28資訊網(wǎng)——每日最新資訊28at.com

主要特點

  • 純 Java 實現(xiàn):不依賴于任何本地庫或第三方工具,完全用 Java 編寫,因此具有很好的跨平臺性。
  • SSH2 協(xié)議支持:支持 SSH-2 協(xié)議,包括密鑰認證、密碼認證、公鑰認證等多種認證方式。
  • 命令執(zhí)行:允許通過 SSH 連接執(zhí)行遠程命令,并獲取命令的輸出結(jié)果。
  • 文件傳輸:支持 SFTP(SSH File Transfer Protocol)協(xié)議,用于在客戶端和服務(wù)器之間安全地傳輸文件。
  • 端口轉(zhuǎn)發(fā):支持本地端口轉(zhuǎn)發(fā)和遠程端口轉(zhuǎn)發(fā),可以用于創(chuàng)建安全的隧道。
  • 會話管理:提供會話管理功能,包括會話的創(chuàng)建、認證、關(guān)閉等。

使用場景

  • 自動化部署:在自動化部署腳本中,使用 JSch 連接到遠程服務(wù)器,執(zhí)行部署命令。
  • 遠程監(jiān)控:通過 SSH 連接遠程服務(wù)器,執(zhí)行監(jiān)控命令,并獲取監(jiān)控數(shù)據(jù)。
  • 文件同步:使用 SFTP 協(xié)議安全地同步文件到遠程服務(wù)器或從遠程服務(wù)器下載文件。
  • 遠程執(zhí)行腳本:在遠程服務(wù)器上執(zhí)行腳本或程序,并獲取執(zhí)行結(jié)果。

引入依賴

<dependency>      <groupId>com.github.mwiede</groupId>      <artifactId>jsch</artifactId>      <version>0.2.19</version>    </dependency>

創(chuàng)建連接

獲取會話

public Session getSession(){        if( this.session != null ){            return this.session;        }        try {            jsch.getSession(property.getUsername(), property.getHost(), property.getPort());            session = jsch.getSession(property.getUsername(), property.getHost(), property.getPort());            session.setPassword(property.getPassword());            session.setConfig("StrictHostKeyChecking","no");// 設(shè)置第一次登陸的時候提示            session.setConfig("max_input_buffer_size","1024");//            Properties sshConfig = new Properties();            sshConfig.put("StrictHostKeyChecking", "no");            session.setConfig(sshConfig);            session.connect();            return session;        } catch (JSchException e) {            throw new RuntimeException(e);        }    }

獲取Sftp連接

public static ChannelSftp getSftp(Session session){        try {            Channel channel = session.openChannel("sftp");            channel.connect();            ChannelSftp sftp = (ChannelSftp) channel;            sftp.setFilenameEncoding("UTF-8");            return sftp;        } catch (Exception e) {            throw new RuntimeException(e);        }    }

獲取命令執(zhí)行連接

public static ChannelExec getExec(Session session){        try {            Channel channel = session.openChannel("exec");//            channel.connect();            ChannelExec exec = (ChannelExec) channel;            return exec;        } catch (Exception e) {            throw new RuntimeException(e);        }    }

執(zhí)行腳本

public static void execCommand(ChannelExec exec,String command){        try {            exec.setCommand(command);            InputStream in = exec.getInputStream();            exec.connect();            BufferedReader inputReader = new BufferedReader(new InputStreamReader(in, "UTF8"));            String inputLine;            while ((inputLine = inputReader.readLine()) != null) {                System.out.println(inputLine);            }        } catch (Exception e) {            throw new RuntimeException(e);        } finally {            exec.disconnect();        }    }

執(zhí)行文件下載

public static void fileDownload(ChannelSftp sftp, String path,String dist){        try {            InputStream is = sftp.get(path);            FileUtils.copyInputStreamToFile(is, FileUtils.getFile(dist,FilenameUtils.getName(path)));            is.close();        } catch (SftpException e) {            e.printStackTrace();        } catch (IOException e) {            e.printStackTrace();        }    }

測試

獲取會話

public static Session getSession(){    ConnectProperty property = new ConnectProperty();    property.setHost("...");    property.setPort(22);    property.setUsername("...");    property.setPassword("...");    ConnectHelper helper = new ConnectHelper(property);    return helper.getSession();}

下載文件

public static void download(Session session){    ChannelSftp sftp = ConnectHelper.getSftp(session);    ConnectHelper.fileDownload(sftp,"/home/test/1.txt","E://home//tmp");}

執(zhí)行命令

public static void execCommand(Session session){    ChannelExec exec = ConnectHelper.getExec(session);    ConnectHelper.execCommand(exec, "pwd");

k9e28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-112725-0.html還不會用Java操作遠程服務(wù)器?

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Go1.23 新特性:爭議最大的 iter 迭代器,可遍歷萬物!

下一篇: 停止使用 `let` 或為什么它在 JavaScript/TypeScript 中是不必要的

標(biāo)簽:
  • 熱門焦點
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發(fā)布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發(fā)布,本次就這款耳機新品給大家?guī)硪粋€簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產(chǎn)
  • 三言兩語說透設(shè)計模式的藝術(shù)-簡單工廠模式

    一、寫在前面工廠模式是最常見的一種創(chuàng)建型設(shè)計模式,通常說的工廠模式指的是工廠方法模式,是使用頻率最高的工廠模式。簡單工廠模式又稱為靜態(tài)工廠方法模式,不屬于GoF 23種設(shè)計
  • 微信語音大揭秘:為什么禁止轉(zhuǎn)發(fā)?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉(zhuǎn)發(fā)?這是一個我們經(jīng)常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 電視息屏休眠仍有網(wǎng)絡(luò)上傳 愛奇藝被質(zhì)疑“薅消費者羊毛”

    記者丨寧曉敏 見習(xí)生丨汗青出品丨鰲頭財經(jīng)(theSankei) 前不久,愛奇藝發(fā)布了一份亮眼的一季報,不僅營收和會員營收創(chuàng)造歷史最佳表現(xiàn),其運營利潤也連續(xù)6個月實現(xiàn)增長。自去年年初
  • “又被陳思誠騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國產(chǎn)懸疑電影,成了陳思誠的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠再度風(fēng)頭無兩。你可以說陳思誠的
  • 當(dāng)家的盒馬,加速謀生

    來源 | 價值星球Planet作者 | 歸去來自己&ldquo;當(dāng)家&rdquo;的盒馬,開始加速謀生了。據(jù)盒馬官微消息,盒馬計劃今年開放生鮮供應(yīng)鏈,將其生鮮商品送往食堂。目前,盒馬在上海已經(jīng)與
  • 認真聊聊東方甄選:如何告別低垂的果實

    來源:山核桃作者:財經(jīng)無忌爆火一年后,俞敏洪和他的東方甄選依舊是頗受外界關(guān)心的&ldquo;網(wǎng)紅&rdquo;。7月5日至9日,為期5天的東方甄選&ldquo;甘肅行&rdquo;首次在自有App內(nèi)直播,
  • Android 14發(fā)布:首批適配機型公布

    5月11日消息,谷歌在今天凌晨舉行了I/O大會,本次發(fā)布會谷歌帶來了自家的AI語言模型PaLM 2、谷歌Pixel Fold折疊屏、谷歌Pixel 7a手機,同時發(fā)布了Androi
  • SN570 NVMe SSD固態(tài)硬盤 價格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進,性能也得到了進一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top 主站蜘蛛池模板: 博客| 竹山县| 汉寿县| 建瓯市| 胶南市| 炉霍县| 马尔康县| 屯门区| 乌兰浩特市| 双桥区| 通州区| 台中县| 邵阳市| 时尚| 百色市| 肃北| 红安县| 新源县| 姜堰市| 庆城县| 盘山县| 全南县| 景洪市| 普兰店市| 湖南省| 尚志市| 张家港市| 大丰市| 盐城市| 青铜峡市| 苗栗县| 义马市| 磐安县| 洛川县| 绥德县| 克东县| 玛曲县| 南靖县| 肃南| 扬中市| 石首市|