java执行linux命令

废话不多说,直接上代码

package com.mlchain.strategy.utils;

import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.util.Properties;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.charset.Charset;
/**
*
*@auther keven
*@date 2018/12/7 14:55
*@desc 远程执行linux服务器
*@since V1.0
*/
public class RemoteCommandUtil {
    public static void main(String[] args) throws Exception {
        JSch jsch = new JSch(); // 创建JSch对象
        String userName = "####";// 用户名
        String password = "####";// 密码
        String host = "####";// 服务器地址
        int port = 22;// 端口号
        //String cmd = "cat /data/hello.txt";// 要运行的命令
        String cmd = "netstat -ntlp";// 要运行的命令
        Session session = jsch.getSession(userName, host, port); // 根据用户名,主机ip,端口获取一个Session对象
        session.setPassword(password); // 设置密码
        Properties config = new Properties();
        config.put("StrictHostKeyChecking", "no");
        session.setConfig(config); // 为Session对象设置properties
        int timeout = 60000000;
        session.setTimeout(timeout); // 设置timeout时间
        session.connect(); // 通过Session建立链接
        ChannelExec channelExec = (ChannelExec) session.openChannel("exec");
        channelExec.setCommand(cmd);
        channelExec.setInputStream(null);
        channelExec.setErrStream(System.err);
        channelExec.connect();
        InputStream in = channelExec.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(in, Charset.forName("UTF-8")));
        String buf = null;
        StringBuffer sb = new StringBuffer();
        while ((buf = reader.readLine()) != null) {
            sb.append(buf);
            System.out.println(buf);// 打印控制台输出
        }
        reader.close();
        channelExec.disconnect();
        if (null != session) {
            session.disconnect();
        }
    }
}



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天使用java调用linux命令出现了bug,有开始执行命令的日志打印,但是没有后续的执行结果打印,也没有错误日...
    雨中独奏阅读 13,117评论 0 0
  • 执行多条命令 参考: https://blog.csdn.net/huanghai200911/article/d...
    WESTWALL阅读 1,734评论 0 1
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,283评论 4 61
  • 5月份马上又要结束了,2017年小半年匆匆而过。不管你生活如意或者艰辛,生活还是一刻不停歇的继续着。 在现...
    阿洁89阅读 168评论 0 0
  • 星期一,我们班的同学都一脸兴奋地讨论着。原来,向老师说,她发明了一种高科技,要让我们试用一下。 叮铃铃…...
    花语田阅读 442评论 0 2