zoukankan      html  css  js  c++  java
  • java jsch远程执行shell脚本命令

    由于需要远程监控一些Linux主机的运行情况,需要通过java远程执行一些shell脚本,并获取返回值,可以通过jsch实现

    jsch jar包下载地址:http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.51/jsch-0.1.51.jar/download

    public static void SSHCommand(String host,String user,String pass,int port,String command){
    		
    		JSch jsch = new JSch();
    
    		Session session=null;
    		Channel channel=null;
    		try {
    			session = jsch.getSession(user, host, port);
    			session.setPassword(pass);
    			session.setTimeout(2000);
    			Properties config = new Properties();
    			config.put("StrictHostKeyChecking", "no");
    			session.setConfig(config);
    			session.connect();
    			channel = session.openChannel("exec");
    			ChannelExec execChannel = (ChannelExec)channel;
    			execChannel.setCommand(command);
    			InputStream in = channel.getInputStream();
    			channel.connect();
    			
    			StringBuffer sb = new StringBuffer();
    			int c = -1;
    			while((c = in.read()) != -1){
    				sb.append((char)c);
    			}
    			System.out.println("输出结果是:"+sb.toString());
    			
    			in.close();
    		} catch (JSchException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally{
    			channel.disconnect();
    			session.disconnect();
    		}
    		
    	}
    

     当然还可以通过sftp上传文件

    public static boolean upload(String host, String username, String password, int port, String location,File uploadFile){
    		Session session;
    		Channel channel;
    		Channel channelExec;
    		JSch jsch = new JSch();
    		try {
    			session = jsch.getSession(username, host, port);
    			session.setPassword(password);
    			
    			Properties config = new Properties();
    			config.put("StrictHostKeyChecking", "no");
    			session.setConfig(config);
    			
    			session.connect();
    			channel = session.openChannel("sftp");
    			channel.connect();
    			ChannelSftp c = (ChannelSftp)channel;
    			c.cd(location);
    		    c.put(new FileInputStream(uploadFile),uploadFile.getName());
    		   
    		    //-------------------------
    			c.disconnect();
    			session.disconnect();
    			return true;
    		} catch (JSchException e) {
    			e.printStackTrace();
    		} catch (SftpException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		return false;
    	}
    
  • 相关阅读:
    树莓派4b 对于 Failed to execute command 的解决方案
    Windows 10 启用以太网/公共网络共享
    树莓派 配置 OMV 搭建 NAS(四) 文件夹共享
    树莓派 配置 OMV 搭建 NAS(三) 硬盘挂载
    树莓派 配置 OMV 搭建 NAS(二) 配置 OMV 5
    树莓派 系统配置
    树莓派/Debian 网线连接主机
    树莓派 配置 OMV 5 搭建 NAS(一) 安装 OMV 5
    Vmware 15 虚拟机挂载硬盘
    p9半幺群
  • 原文地址:https://www.cnblogs.com/china2k/p/3771166.html
Copyright © 2011-2022 走看看