所需jar包,commons-io-2.6.jar, ganymed-ssh2-262.jar

import ch.ethz.ssh2.ChannelCondition;

import ch.ethz.ssh2.Connection;

import ch.ethz.ssh2.Session;

import ch.ethz.ssh2.StreamGobbler;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.ArrayList;

import java.util.List;

/**

* 本机调用linux上的命令

* java 远程执行Shell命令-通过ganymed-ssh2连接

* JAVA利用SSH2登录LINUX并执行命令_运维_yezhuanxu的博客-CSDN博客

* Java 远程执行 Linux 的命令

*/

public class DemoRunShell1 {

public static void main(String[] args) {

String ip = "192.168.137.190";

String username = "root";

String password = "111111";

String runshellbinbash = "'#!/bin/bash'";

String cmd = "rm -rf /home/tony_dir/run_hadoop_wordcount_1.sh;" +

"echo "+runshellbinbash+" >> /home/tony_dir/run_hadoop_wordcount_1.sh; " +

"echo >> /home/tony_dir/run_hadoop_wordcount_1.sh; " +

"chmod 777 /home/tony_dir/run_hadoop_wordcount_1.sh; " +

"/home/tony_dir/run_hadoop_wordcount_1.sh";

String chartset = "UTF-8";

Connection connection = null;

Session session = null;

//首先构造一个连接器,传入一个需要登陆的ip地址

try {

connection = new Connection(ip);

connection.connect();//连接

boolean isAuthenticated = connection.authenticateWithPassword(username, password);

if (isAuthenticated) {

System.out.println("连接成功");

} else {

throw new Exception("连接失败");

}

session = connection.openSession();

//把命令写入脚本,在执行该脚本

// session.execCommand(cmd);

// session.execCommand("/root/tony_dir/shell_demo/demo_for.sh");

// session.execCommand("/root/tony_dir/run_test1.sh");

session.execCommand("ifconfig");

// session.execCommand("pwd");

//获得标准输出流

InputStream is = new StreamGobbler(session.getStdout());

BufferedReader brs = new BufferedReader(new InputStreamReader(is, chartset));

List result = new ArrayList();

for (String line = brs.readLine(); line != null; line = brs.readLine()) {

result.add(line);

System.out.println(line);

}

if(result.size() ==0) {

System.out.println(result);

}

session.waitForCondition(ChannelCondition.CLOSED | ChannelCondition.EOF | ChannelCondition.EXIT_STATUS, 1000 * 3600);

System.out.println("ExitCode: " + session.getExitStatus()); //得到脚本运行成功与否的标志 :0 成功,非0 失败

} catch (Exception e) {

e.printStackTrace();

} finally {

if (session != null) {

session.close();

}

if (connection != null) {

connection.close();

}

}

}

}

java linux命令远程执行_java执行远程服务器上的shell命令相关推荐

  1. java linux root权限管理_Java 执行root 权限linux命令

    打开终端,先以 root 身份登录:su root 然后执行:visudo (visudo编辑sudoers配置文件) 在打开的文件中,找到下面这一行: root ALL=(ALL) ALL 并紧帖其 ...

  2. 服务器免密码传输文件,CentOS7,使用 scp 命令, ssh 连接方式,免密码传输文件到远程服务器,免密执行远程服务器上的 shell 脚本...

    如题 如果提示:-bash: scp: command not found, 执行下面的命令安装:1 yum install -y openssh-clients 免密码配置通常用 scp 命令通过 ...

  3. 两台服务器双向同步文件,远程同步文件 两台服务器上

    远程同步文件 两台服务器上 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...

  4. 修改数据库服务器日期命令,服务器上数据库用命令修改

    服务器上数据库用命令修改 内容精选 换一换 本教程旨在演示使用GDS(Gauss Data Service)工具将远端服务器上的数据导入GaussDB(for openGauss)中的办法,帮助您学习 ...

  5. 服务器查看文件命令大全,服务器上查看文件命令

    服务器上查看文件命令 内容精选 换一换 cd /opt/dis-agent-X.X.X/logstail -100f dis-agent.log显示如下信息,表示Agent正常运行.Agent: St ...

  6. 在远程linux服务器上用wget命令下载nuscenes数据集出现HTTP request sent, awaiting response... 403 Forbidden错误

    问题描述: 在使用wget命令在服务器上下载nuscenes数据集的时候,出现了403的错误 问题原因: 查了一些博客说是wget命令后面的网址有问题 想到自己实在google浏览器上复制的下载网址, ...

  7. java 连接远程桌面_Java实现远程桌面(参赛作品)

    [实例简介] 本人参赛作品,纯java实现多台电脑间的远程桌面连接. [实例截图] [核心代码] javaSE实现远程桌面 └── javaSE实现远程桌面 ├── 1.程序介绍 │   └── AI ...

  8. Linux学习笔记(一)(服务器环境搭配 常用命令 文件属性)

    Linux学习笔记(一) 概述 Linux发行版 Linux应用 Linux系统运行级别 远程环境配置 连接服务器 安装宝塔 配置环境 测试 测试连接Tomcat 测试访问网站 测试上传 学习Linu ...

  9. centos6安装mysql并远程连接_阿里云服务器上安装redis并实现远程连接

    一.概述 之前一直将redis安装在本地,为了在服务器上使用redis进行数据的存储,需要在服务器端进行redis的安装,本次使用的是阿里云服务器,由于是第一安装,在安装及后续远程连接过程中也遇到一些 ...

最新文章

  1. SSAN 关系抽取 论文笔记
  2. 齐聚上海,get多媒体开发新技能(内附讲师资料下载)
  3. 【AOP 面向切面编程】Android Studio 中配置 AspectJ ( 下载并配置AS中 jar 包 | 配置 Gradle 和 Gradle 插件版本 | 配置 Gradle 构建脚本 )
  4. MyBatis增强工具pndao-帮你自动写SQL
  5. python .center用法_Python Pandas Series.str.center()用法及代码示例
  6. Element menu
  7. 自称比特币创造者中本聪,如今这人被法官怒怼作伪证!
  8. java导出excel水印_java实现导出带有水印的excel
  9. CUDA学习笔记(四)GPU架构
  10. QT与LINUXC后台网络通信实现飞机票网络购票
  11. 计算机功能自定义,设计大师学教学:自定义鼠标右键功能提升CAD绘图效率-鼠标右键菜单设置...
  12. 20个精美图表,教你玩转Pyecharts可视化
  13. tmooccn达内登录_达内上线技术学习平台TMOOC.CN,由线下反攻线上,O2O是在线教育的出路?...
  14. 2021最新Spring Boot 面试题
  15. rn 函数式组件获取子组件的实例
  16. Kaggle实战:泰坦尼克幸存者预测 -下
  17. 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法的制作方法...
  18. loadrunner12-错误 -26366: 找不到 web_reg_find 的“Text=19728.00”
  19. redis 端口号为什么是 6379
  20. taobao 登录功能代码 淘宝

热门文章

  1. eclipse-阶段三-Server被关闭后消失,如何打开
  2. 【李宏毅2020 ML/DL】P85 Transfer Learning
  3. 21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)...
  4. ajax修改属性后如何遍历,Ajax遍历jSon后对每一条数据进行相应的修改和删除(代码分享)...
  5. Java 技术是什么?
  6. Cocos2d-x编程中的runOnUiThread方法和runOnGLThread方法剖析
  7. java语言乘号_java的编码样式、运算符运算对象
  8. 无人驾驶插秧机智能辅助系统_无人驾驶插秧机搭载北斗导航驾驶系统,误差仅在2.5厘米内...
  9. Spring Boot技术之异步任务执行
  10. [摘抄]〈测试之美〉读后感