`
-Jan-sep-
  • 浏览: 11962 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

远程调用其他主机sh脚本工具

阅读更多
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import org.n3r.quartz.glass.log.joblog.JobLogs;
import java.util.Properties;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Created by jansep_wangcx on 2018/5/31
 * 远程调用其他主机sh脚本工具
 */

public class ShToOtherUtil {

    /**
     *
     * @param ip
     * @param name
     * @param pass
     * @param port 端口,默认22
     * @param shpath sh脚本地址
     * @return
     */
    public static boolean ExeShell(String ip,String name,String pass,
                                   int port,String shpath){

        try{
            Session session = null;
            JSch jsch = new JSch(); // 创建JSch对象
            if(port==22){
                session = jsch.getSession(name, ip);
            }else{
                session = jsch.getSession(name, ip,port);
            }

            session.setPassword(pass);
            Properties config = new Properties();
            config.put("StrictHostKeyChecking", "no");
            session.setConfig(config);
          //  session.connect(30000);
            session.connect();

            ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
            channelExec.setCommand("sh " + shpath);
            channelExec.setInputStream(null);
            channelExec.setErrStream(System.err);
            channelExec.connect();

            BufferedReader input = new BufferedReader(new InputStreamReader(channelExec
                    .getInputStream()));


            String line;
            while ((line = input.readLine()) != null) {
                JobLogs.info("InputStream:"+line);
            }

        }catch (JSchException e) {
            JobLogs.error("ssh连接出错",e);
            return false;
        }catch (IOException e) {
            JobLogs.error("sh脚本执行出错",e);
            return false;
        }


        return true;
    }

}

 

分享到:
评论

相关推荐

    远程控制主机的SHELL自动化管理 案例

    2. **Perl脚本执行**:假设远程主机上的Perl脚本名为`remote_perl_script.pl`,我们可以在SSH命令中直接调用它,如`ssh user@remote_host perl remote_perl_script.pl`。如果Perl脚本需要参数,可以传递在命令后,...

    Java远程调用Shell脚本并获取输出信息【推荐】

    Java远程调用Shell脚本并获取输出信息 本文主要介绍了Java远程调用Shell脚本并获取输出信息的方法。该方法通过使用Java的SSH客户端来连接远程Linux服务器,执行Shell脚本,并获取输出信息。 一、添加依赖 要使用...

    通过SSHPASS执行命令及相关脚本

    标题中的“通过SSHPASS执行命令及相关脚本”是指在Linux环境下使用`sshpass`工具进行非交互式SSH登录并执行远程命令的技术。`sshpass`是一个命令行实用程序,它允许用户在不手动输入密码的情况下,通过SSH连接执行...

    java远程调用kettle说明与代码.pdf

    - **命令行启动**:可以通过`carte.bat`(Windows)或`carte.sh`(Linux)脚本启动Carte,指定主机地址和端口号,如`Carte 127.0.0.1 8080`。 - **配置文件启动**:当需要动态集群设置时,使用配置文件启动Carte。...

    如何用java程序(JSch)运行远程linux主机上的shell脚本

    将脚本放置在远程主机的某个路径,例如`/root/hello.sh`。 接下来,在Java程序中,你可以使用以下代码来执行远程shell脚本: ```java import com.jcraft.jsch.*; public class RunRemoteScript { private static...

    jenkins 执行远程linux命令

    3. **执行远程脚本**:勾选“执行远程主机上的shell脚本(使用SSH)”选项。 4. **设置SSH站点**:在“SSH站点”下拉菜单中选择第四步中配置的远程主机名称。 5. **编写脚本**:在“预构建脚本”和“后构建脚本”...

    ant远程调用shell,启动linux上的tomcat

    本文将深入探讨如何使用Ant工具进行远程调用Shell脚本,以启动Linux服务器上的Tomcat应用服务器。Ant是一个基于Java的任务执行工具,常用于构建和管理Java项目。而Tomcat是一款广泛使用的开源Servlet容器,适用于...

    远程登录linux主机更换IP地址.docx

    "远程登录Linux主机更换IP地址" 远程登录Linux主机更换IP地址是指在远程登录Linux主机时,需要更换IP地址以便进行网络配置的过程。该过程通常用于克隆虚拟机或新建实例时,需要指定IP地址以避免IP地址冲突和混乱。 ...

    Java调用shell脚本

    将Java与Shell脚本结合使用,可以在Java应用程序中执行系统级操作或者调用复杂的命令行流程。下面我们将详细探讨如何在Java中调用shell脚本以及涉及到的相关知识点。 首先,Java调用shell脚本主要通过`Runtime`类或...

    linux ppp拨号脚本

    PPP拨号脚本通常用于配置和管理这些连接,使得Linux主机可以拨号上网或者与其他设备建立点对点连接。本文将详细探讨Linux PPP拨号脚本,包括`ip-up`、`chat-connect`和`chat-disconnect`等关键文件的作用,以及如何...

    shell脚本实现ssh-copy-id批量自动发送公钥到远程主机

    `ssh-copy-id`命令是SSH的一部分,用于将本地的公钥复制到远程主机的`~/.ssh/authorized_keys`文件中,从而实现免密登录。本文将详细讲解如何使用shell脚本来批量执行`ssh-copy-id`,以提高效率。 ### 需求 批量...

    ubuntu实用脚本

    "ubuntu实用脚本"这个主题,尤其是结合了"adb push"命令的集成,表明我们正在讨论一种旨在简化Android设备或模拟器与主机之间文件传输的脚本。下面我们将深入探讨Ubuntu脚本和adb工具的相关知识点。 1. **Ubuntu ...

    Linux巡检脚本,方便、快捷、安全

    巡检脚本是实现这一目的的有效工具之一,它能够自动化收集系统的多项关键指标,帮助管理员快速定位问题并作出相应的处理。 #### 二、脚本功能解析 根据提供的Linux巡检脚本内容,我们可以将其主要功能分为以下几个...

    DOS批处理下操作telnet实现自动远程登录操作

    在本案例中,作者提到了一种通过DOS批处理脚本来实现telnet远程登录并执行一系列操作的方法,以简化日常工作中重复性较高的任务。 #### 工作环境配置 - **开发工具**:Eclipse - **数据库**:Oracle 10g - **测试...

    Tomcat远程调试

    为了开启Tomcat的远程调试功能,我们需要在Tomcat的启动脚本(如`catalina.sh`或`catalina.bat`)中添加特定的Java选项。主要涉及以下两个参数: 1. `-Xdebug`: 这个参数告诉JVM开启调试模式。 2. `-Xrunjdwp`: 它...

    QT一键目标板远程调试

    gdbserver是一款轻量级的远程调试工具,能够在目标板上运行并接受来自宿主机gdb的指令。 2. **SSH服务配置**:确保目标板上已安装SSH服务,并且能够通过SSH连接。具体安装方法取决于目标板的操作系统,一般可以...

    Jenkins使用说明

    这通常通过 SSH 或其他远程执行工具实现,如 SCP 或 WinRM。在 Job 的“构建后操作”中配置这些步骤,包括上传文件、执行远程脚本以启动服务等。 **Jenkins安装** Jenkins 可以通过两种方式进行安装:RPM 和 WAR ...

    iterm2-zmodem-master.zip

    假设你想从远程主机接收一个文件,你可以打开iTerm2,然后运行`iterm2-recv-zmodem.sh`脚本,它会启动一个等待接收文件的会话。在远程主机上,使用sz命令发送文件: ```bash sz /path/to/remote/file ``` 在iTerm2...

    java应用程序远程登录linux并执行其命令

    确保脚本具有执行权限(`chmod +x script.sh`),并且在脚本中使用`#!/bin/bash`作为第一行来指定解释器。 5. **错误处理与安全性**:在实际应用中,我们需要处理连接失败、命令执行错误等异常情况。同时,务必注意...

Global site tag (gtag.js) - Google Analytics