zoukankan      html  css  js  c++  java
  • java 使用jsch 远程链接linux执行命令

                一个简单的jsch链接linux并执行命令的utils。

             

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    
    import com.jcraft.jsch.Channel;
    import com.jcraft.jsch.ChannelExec;
    import com.jcraft.jsch.JSch;
    import com.jcraft.jsch.JSchException;
    import com.jcraft.jsch.Session;
    
    
    
    public class ShellUtils {
    	private static JSch jsch;
    	private static Session session;
    
    	
    	/**
    	 * 连接到指定的IP
    	 * 
    	 * @throws JSchException
    	 */
    	public static void connect(String user, String passwd, String host) throws JSchException {
    		jsch = new JSch();
    		session = jsch.getSession(user, host, 22);
    		session.setPassword(passwd);
    		
    		java.util.Properties config = new java.util.Properties();
    		config.put("StrictHostKeyChecking", "no");
    		session.setConfig(config);
    		
    		session.connect();
    	}
    
    	/**
    	 * 执行相关的命令
    	 * @throws JSchException 
    	 */
    	public static void execCmd(String command, String user, String passwd, String host) throws JSchException {
    		connect(user, passwd, host);
    		
    		BufferedReader reader = null;
    		Channel channel = null;
    
    		try {
    			while (command != null) {
    				channel = session.openChannel("exec");
    				((ChannelExec) channel).setCommand(command);
    				
    				channel.setInputStream(null);
    				((ChannelExec) channel).setErrStream(System.err);
    
    				channel.connect();
    				InputStream in = channel.getInputStream();
    				reader = new BufferedReader(new InputStreamReader(in));
    				String buf = null;
    				while ((buf = reader.readLine()) != null) {
    					System.out.println(buf);
    				}
    			}
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (JSchException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				reader.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    			channel.disconnect();
    			session.disconnect();
    		}
    	}
       
    }
    



  • 相关阅读:
    将excel单元格中的内容,批量转化成批注
    装饰器的入门到精通
    自定义dict
    python2.7 + PyQt4安装
    一些好用的python模块
    人工智能-自然语言处理
    websocket-单群聊
    UA池和代理池
    scrapy框架持久化存储
    SQL Server 2012 酸爽的安装体验
  • 原文地址:https://www.cnblogs.com/allenzhaox/p/3201775.html
Copyright © 2011-2022 走看看