电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

使用springboot對linux進行操控的方法示例

瀏覽:53日期:2022-09-27 18:46:36

1,在pom中導入

<dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-ssh2</artifactId> <version>build210</version> </dependency>

2,編寫工具類

package org.jeecg.modules.system.util;/** * @Description: * @Author: LGX * @Date: 2020/11/19 10:36 */import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang.StringUtils;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;import java.io.*;/** * 遠程執行linux的shell script * @author Ickes * @since V0.1 */@Data@NoArgsConstructor@AllArgsConstructor@Slf4j@Componentpublic class RemoteExecuteCommandutil { //字符編碼默認是utf-8 private static String DEFAULTCHART='UTF-8'; private Connection conn; @Value(value = '${jeecg.linux.ip}') public String ip; @Value(value = '${jeecg.linux.userName}') public String userName; @Value(value = '${jeecg.linux.userPwd}') public String userPwd; /** * 遠程登錄linux的主機 * @author Ickes * @since V0.1 * @return * 登錄成功返回true,否則返回false */ public Boolean login(){ boolean flg=false; try { conn = new Connection(ip); conn.connect();//連接 flg=conn.authenticateWithPassword(userName, userPwd);//認證 } catch (IOException e) { e.printStackTrace(); } return flg; } /** * @author Ickes * 遠程執行shll腳本或者命令 * @param cmd * 即將執行的命令 * @return * 命令執行完后返回的結果值 * @since V0.1 */ public String execute(String cmd){ String result=''; try { if(login()){Session session= conn.openSession();//打開一個會話session.execCommand(cmd);//執行命令result=processStdout(session.getStdout(),DEFAULTCHART);//如果為得到標準輸出為空,說明腳本執行出錯了if(StringUtils.isBlank(result)){ result=processStdout(session.getStderr(),DEFAULTCHART);}conn.close();session.close(); } } catch (IOException e) { e.printStackTrace(); } return result; } /** * @author Ickes * 遠程執行shll腳本或者命令 * @param cmd * 即將執行的命令 * @return * 命令執行成功后返回的結果值,如果命令執行失敗,返回空字符串,不是null * @since V0.1 */ public String executeSuccess(String cmd){ String result=''; try { if(login()){Session session= conn.openSession();//打開一個會話session.execCommand(cmd);//執行命令result=processStdout(session.getStdout(),DEFAULTCHART);conn.close();session.close(); } } catch (IOException e) { e.printStackTrace(); } return result; } /** * 解析腳本執行返回的結果集 * @author Ickes * @param in 輸入流對象 * @param charset 編碼 * @since V0.1 * @return * 以純文本的格式返回 */ private String processStdout(InputStream in, String charset){ InputStream stdout = new StreamGobbler(in); StringBuffer buffer = new StringBuffer();; try { BufferedReader br = new BufferedReader(new InputStreamReader(stdout,charset)); String line=null; while((line=br.readLine()) != null){buffer.append(line+'n'); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return buffer.toString(); }}

3,yml里編寫配置信息

jeecg : linux: ip: 192.168.xxx.xxx userName: root userPwd: 123456

4,注入工具類,編寫命令

@Autowired private RemoteExecuteCommandutil Commandutil; @GetMapping(value = '/training') public String training(@RequestParam(name='cmd') String cmd){// String a = 'sh /opt/shops/test1.sh 1 3'; //命令返回的信息 String cmdInformation =Commandutil.execute('source /etc/profile;'+cmd); return cmdInformation; }

由于ssh連接無法自動獲取環境變量的值,得再執行前面加入source /etc/profile;來手動識別,如果還是不行可以在/etc/profile末尾加入export PATH='$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games'

到此這篇關于使用springboot對linux進行操控的方法示例的文章就介紹到這了,更多相關springboot linux操控內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 欧版反击式破碎机-欧版反击破-矿山石料破碎生产线-青州奥凯诺机械 | 电子天平-华志电子天平厂家| 软文发布-新闻发布推广平台-代写文章-网络广告营销-自助发稿公司媒介星 | 山东螺杆空压机,烟台空压机,烟台开山空压机-烟台开山机电设备有限公司 | 郑州墨香品牌设计公司|品牌全案VI设计公司 | 筒瓦厂家-仿古瓦-寺庙-古建琉璃瓦-宜兴市古典园林建筑陶瓷厂有限公司 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 清管器,管道清管器,聚氨酯发泡球,清管球 - 承德嘉拓设备 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 单柱拉力机-橡胶冲片机-哑铃裁刀-江都轩宇试验机械厂 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | led冷热冲击试验箱_LED高低温冲击试验箱_老化试验箱-爱佩百科 | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 防锈油-助焊剂-光学玻璃清洗剂-贝塔防锈油生产厂家 | 二手色谱仪器,十万分之一分析天平,蒸发光检测器,电位滴定仪-湖北捷岛科学仪器有限公司 | 澳洁干洗店加盟-洗衣店干洗连锁「澳洁干洗免费一对一贴心服务」 干洗加盟网-洗衣店品牌排行-干洗设备价格-干洗连锁加盟指南 | 衬塑设备,衬四氟设备,衬氟设备-淄博鲲鹏防腐设备有限公司 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 无压烧结银_有压烧结银_导电银胶_导电油墨_导电胶-善仁(浙江)新材料 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 协议书_协议合同格式模板范本大全 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | 德国BOSCH电磁阀-德国HERION电磁阀-JOUCOMATIC电磁阀|乾拓百科 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 | 数显恒温培养摇床-卧式/台式恒温培养摇床|朗越仪器 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 不锈钢/气体/液体玻璃转子流量计(防腐,选型,规格)-常州天晟热工仪表有限公司【官网】 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 广州展览设计公司_展台设计搭建_展位设计装修公司-众派展览装饰 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 钢托盘,钢制托盘,立库钢托盘,金属托盘制造商_南京飞天金属制品实业有限公司 | 考试试题_试卷及答案_诗词单词成语 - 优易学 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 999范文网_优质范文下载写作帮手 | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 土壤检测仪器_行星式球磨仪_土壤团粒分析仪厂家_山东莱恩德智能科技有限公司 | 天津市能谱科技有限公司-专业的红外光谱仪_红外测油仪_紫外测油仪_红外制样附件_傅里叶红外光谱技术生产服务厂商 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 |