Java远程调用Linux脚本
参考:http://blog.csdn.net/xiao_jun_0820/article/details/26254813
http://blog.csdn.net/a19881029/article/details/20000775
- package shell;
- import java.io.IOException;
- import java.io.InputStream;
- import java.nio.charset.Charset;
- import ch.ethz.ssh2.Connection;
- import ch.ethz.ssh2.Session;
- public class RemoteShellTool {
- private Connection conn;
- private String ipAddr;
- private String charset = Charset.defaultCharset().toString();
- private String userName;
- private String password;
- public RemoteShellTool(String ipAddr, String userName, String password, String charset) {
- this.ipAddr = ipAddr;
- this.userName = userName;
- this.password = password;
- if (charset != null) {
- this.charset = charset;
- }
- }
- public boolean login() throws IOException {
- conn = new Connection(ipAddr);
- conn.connect(); // 连接
- return conn.authenticateWithPassword(userName, password); // 认证
- }
- public String exec(String cmds) {
- InputStream in = null;
- String result = "";
- try {
- if (this.login()) {
- Session session = conn.openSession(); // 打开一个会话
- session.execCommand(cmds);
- in = session.getStdout();
- result = this.processStdout(in, this.charset);
- session.close();
- conn.close();
- }
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- return result;
- }
- public String processStdout(InputStream in, String charset) {
- byte[] buf = new byte[1024];
- StringBuffer sb = new StringBuffer();
- try {
- while (in.read(buf) != -1) {
- sb.append(new String(buf, charset));
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- return sb.toString();
- }
- /**
- * @param args
- */
- public static void main(String[] args) {
- RemoteShellTool tool = new RemoteShellTool("192.168.134.128", "root", "root", "utf-8");
- // String result = tool.exec("./test.sh xiaojun");
- String result = tool.exec("cd /home;./t.sh");
- System.out.println(result);
- }
- }
Java远程调用Linux脚本的更多相关文章
- java远程调用linux的命令或者脚本
转载自:http://eksliang.iteye.com/blog/2105862 Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar) 使用步骤如下 ...
- JAVA远程执行Shell脚本类
1.java远程执行shell脚本类 package com.test.common.utility; import java.io.IOException; import java.io.Input ...
- 使用Runtime.getRuntime().exec()在java中调用python脚本
举例有一个Python脚本叫test.py,现在想要在Java里调用这个脚本.假定这个test.py里面使用了拓展的包,使得pythoninterpreter之类内嵌的编译器无法使用,那么只能采用ja ...
- Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件
本文通过Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件,代码如下: import java.io.File; import java.io.IOException; import ...
- Java实践-远程调用Shell脚本并获取输出信息
1.添加依赖 <dependency> <groupId>ch.ethz.ganymed</groupId> <artifactId>ganymed-s ...
- Shell 脚本 —— java 代码远程调用shell脚本重启 tomcat
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.创建maven 工程 maven 依赖: <dependency> <grou ...
- 用java代码调用shell脚本执行sqoop将hive表中数据导出到mysql
1:创建shell脚本 touch sqoop_options.sh chmod 777 sqoop_options.sh 编辑文件 特地将执行map的个数设置为变量 测试 可以java代码传参数 ...
- linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)
程序猿都非常懒,你懂的! 近期在开发中,须要用到server的ip和mac信息.可是server是架设在linux系统上的,对于多网口,在获取ip时就产生了非常大的问题.以下是在windows系统上, ...
- java中调用js脚本
JDK1.6加入了对Script(JSR223)的支持.这是一个脚本框架,提供了让脚本语言来访问Java内部的方法.你可以在运行的时候找到脚本引擎,然后调用这个引擎去执行脚本.这个脚本API允许你为脚 ...
随机推荐
- Python MongoDB 创建数据库
章节 Python MySQL 入门 Python MySQL 创建数据库 Python MySQL 创建表 Python MySQL 插入表 Python MySQL Select Python M ...
- c\c++ 中字符串分割,并且转换为整形数据
在项目开发中,经常使用到字符串分割, 并且将其转换为整形(比如IP的分割获取,MAC地址的分割获取等),代码如下: #ifndef _UNICODE void StrToIntData( char * ...
- 2020PHP面试-PHP篇
一.列举一些PHP的设计模式 单例模式:保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个,同时这个类还必须提供一个访问该类的全局访问点. 工厂模式:定义一个创建对象的接口,但是让 ...
- CodeForces - 748B Santa Claus and Keyboard Check
题意:给定两个字符串a和b,问有多少种不同的字母组合对,使得将这些字母对替换字符串b后,可以变成字符串a.注意字母对彼此各不相同. 分析:vis[u]记录与u可形成关系的字母,若u与v不同,则形成字母 ...
- you-get使用
1.pip install you-get 2.如果出错 查看错误bug you-get http://www.iqiyi.com/v_19rrnqxz7k.html#vfrm=2-4-0-1 ...
- C语言的字符串类型
C语言使用指针来管理字符串(1)C语言中定义字符串的方法:char *p = "linux";此时p就叫字符串,但是实际上p只是一个字符指针(本质上就是一个指针变量,只是p指向了一 ...
- jdk 的安装教程
1. 配置的位置 鼠标右击计算机----属性-----高级系统设置---环境变量----在系统变量中配置(推荐) 2.增加环境变量 (1)新建 ----- 变量名: JAVA_HOME 变量值 ...
- 18 12 25 css 基本语法以及页面使用
css的定义方法是: 选择器 { 属性:值; 属性:值; 属性:值;} 选择器是将样式和页面元素关联起来的名称,属性是希望设置的样式属性每个属性有一个或多个值 css页面引入方法: 1.外联式:通过l ...
- js数组,字符转换;key_value获取
js 数组转字符串js 字符串转数组arr.join(",");String.split(","); 对象的所有keys Object.keys(val)对象的 ...
- ES6 之 数组的扩展
ES5 检测数组 let arr = [1,2,3,4] Array.isArray(arr) arr instanceof Array 转换方法 arr.toLocaleString() arr.t ...