java linux命令远程执行_java执行远程服务器上的shell命令
所需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命令相关推荐
- java linux root权限管理_Java 执行root 权限linux命令
打开终端,先以 root 身份登录:su root 然后执行:visudo (visudo编辑sudoers配置文件) 在打开的文件中,找到下面这一行: root ALL=(ALL) ALL 并紧帖其 ...
- 服务器免密码传输文件,CentOS7,使用 scp 命令, ssh 连接方式,免密码传输文件到远程服务器,免密执行远程服务器上的 shell 脚本...
如题 如果提示:-bash: scp: command not found, 执行下面的命令安装:1 yum install -y openssh-clients 免密码配置通常用 scp 命令通过 ...
- 两台服务器双向同步文件,远程同步文件 两台服务器上
远程同步文件 两台服务器上 内容精选 换一换 将文件上传至Windows云服务器一般会采用MSTSC远程桌面连接的方式.本节为您介绍本地Windows计算机通过远程桌面连接,上传文件至Windows云 ...
- 修改数据库服务器日期命令,服务器上数据库用命令修改
服务器上数据库用命令修改 内容精选 换一换 本教程旨在演示使用GDS(Gauss Data Service)工具将远端服务器上的数据导入GaussDB(for openGauss)中的办法,帮助您学习 ...
- 服务器查看文件命令大全,服务器上查看文件命令
服务器上查看文件命令 内容精选 换一换 cd /opt/dis-agent-X.X.X/logstail -100f dis-agent.log显示如下信息,表示Agent正常运行.Agent: St ...
- 在远程linux服务器上用wget命令下载nuscenes数据集出现HTTP request sent, awaiting response... 403 Forbidden错误
问题描述: 在使用wget命令在服务器上下载nuscenes数据集的时候,出现了403的错误 问题原因: 查了一些博客说是wget命令后面的网址有问题 想到自己实在google浏览器上复制的下载网址, ...
- java 连接远程桌面_Java实现远程桌面(参赛作品)
[实例简介] 本人参赛作品,纯java实现多台电脑间的远程桌面连接. [实例截图] [核心代码] javaSE实现远程桌面 └── javaSE实现远程桌面 ├── 1.程序介绍 │ └── AI ...
- Linux学习笔记(一)(服务器环境搭配 常用命令 文件属性)
Linux学习笔记(一) 概述 Linux发行版 Linux应用 Linux系统运行级别 远程环境配置 连接服务器 安装宝塔 配置环境 测试 测试连接Tomcat 测试访问网站 测试上传 学习Linu ...
- centos6安装mysql并远程连接_阿里云服务器上安装redis并实现远程连接
一.概述 之前一直将redis安装在本地,为了在服务器上使用redis进行数据的存储,需要在服务器端进行redis的安装,本次使用的是阿里云服务器,由于是第一安装,在安装及后续远程连接过程中也遇到一些 ...
最新文章
- SSAN 关系抽取 论文笔记
- 齐聚上海,get多媒体开发新技能(内附讲师资料下载)
- 【AOP 面向切面编程】Android Studio 中配置 AspectJ ( 下载并配置AS中 jar 包 | 配置 Gradle 和 Gradle 插件版本 | 配置 Gradle 构建脚本 )
- MyBatis增强工具pndao-帮你自动写SQL
- python .center用法_Python Pandas Series.str.center()用法及代码示例
- Element menu
- 自称比特币创造者中本聪,如今这人被法官怒怼作伪证!
- java导出excel水印_java实现导出带有水印的excel
- CUDA学习笔记(四)GPU架构
- QT与LINUXC后台网络通信实现飞机票网络购票
- 计算机功能自定义,设计大师学教学:自定义鼠标右键功能提升CAD绘图效率-鼠标右键菜单设置...
- 20个精美图表,教你玩转Pyecharts可视化
- tmooccn达内登录_达内上线技术学习平台TMOOC.CN,由线下反攻线上,O2O是在线教育的出路?...
- 2021最新Spring Boot 面试题
- rn 函数式组件获取子组件的实例
- Kaggle实战:泰坦尼克幸存者预测 -下
- 基于python的步态分析_基于Python的步态周期及三维肢体活动角度算法的制作方法...
- loadrunner12-错误 -26366: 找不到 web_reg_find 的“Text=19728.00”
- redis 端口号为什么是 6379
- taobao 登录功能代码 淘宝
热门文章
- eclipse-阶段三-Server被关闭后消失,如何打开
- 【李宏毅2020 ML/DL】P85 Transfer Learning
- 21SpringMvc_异步发送表单数据到Bean,并响应JSON文本返回(这篇可能是最重要的一篇了)...
- ajax修改属性后如何遍历,Ajax遍历jSon后对每一条数据进行相应的修改和删除(代码分享)...
- Java 技术是什么?
- Cocos2d-x编程中的runOnUiThread方法和runOnGLThread方法剖析
- java语言乘号_java的编码样式、运算符运算对象
- 无人驾驶插秧机智能辅助系统_无人驾驶插秧机搭载北斗导航驾驶系统,误差仅在2.5厘米内...
- Spring Boot技术之异步任务执行
- [摘抄]〈测试之美〉读后感