zoukankan      html  css  js  c++  java
  • JSCH执行linux命令

    pom.xml 添加jar依赖

    <!-- https://mvnrepository.com/artifact/com.jcraft/jsch -->
    <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.54</version>
    </dependency>

    java类

    package com.aliyun.utility.jsch;
    
    import com.jcraft.jsch.ChannelExec;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.Session;
    
    import java.io.InputStream;
    
    import java.util.Properties;
    
    
    public class JSCHUtil {
        private static JSCHUtil instance;
    
        private JSCHUtil() {
        }
    
        public static JSCHUtil getInstance() {
            if (instance == null) {
                instance = new JSCHUtil();
            }
    
            return instance;
        }
    
        private Session getSession(String host, int port, String ueseName)
            throws Exception {
            JSch jsch = new JSch();
            Session session = jsch.getSession(ueseName, host, port);
    
            return session;
        }
    
        public Session connect(String host, int port, String ueseName,
            String password) throws Exception {
            Session session = getSession(host, port, ueseName);
            session.setPassword(password);
    
            Properties config = new Properties();
            config.setProperty("StrictHostKeyChecking", "no");
            session.setConfig(config);
            session.connect();
    
            return session;
        }
    
        public String execCmd(Session session, String command)
            throws Exception {
            if (session == null) {
                throw new RuntimeException("Session is null!");
            }
    
            ChannelExec exec = (ChannelExec) session.openChannel("exec");
            InputStream in = exec.getInputStream();
            byte[] b = new byte[1024];
    
            exec.setCommand(command);
            exec.connect();
    
            StringBuffer buffer = new StringBuffer();
    
            while (in.read(b) > 0) {
                buffer.append(new String(b));
            }
    
            exec.disconnect();
    
            return buffer.toString();
        }
    
        public void clear(Session session) {
            if ((session != null) && session.isConnected()) {
                session.disconnect();
                session = null;
            }
        }
    
        public static void main(String[] args) throws Exception {
            Session session = JSCHUtil.getInstance()
                                      .connect("10.9.9.135", 22, "yy", "yy");
            String cmd = "cd /" + ";" + "ls -al |grep home";
            String result = JSCHUtil.getInstance().execCmd(session, cmd); // ???????;?? 
            System.out.println(result);
            System.exit(0);
        }
    }
    不积跬步,无以至千里;不积小流,无以成江海。
  • 相关阅读:
    Web 请求响应原理(转)
    openstack中的floating ip与阿里云的公网ip
    一起来说 Vim 语
    vsftpd.conf 详解与实例配置
    jquery 放大图片
    jQuery 之 .stop() 方法
    jquery 插件开发
    jquery 之效果
    jquery 之事件 多库共存(noConflict)
    测试网站是共享还是独立ip
  • 原文地址:https://www.cnblogs.com/lovedaodao/p/7810060.html
Copyright © 2011-2022 走看看