當前位置: 首頁>>代碼示例>>Java>>正文


Java Channel.getInputStream方法代碼示例

本文整理匯總了Java中com.jcraft.jsch.Channel.getInputStream方法的典型用法代碼示例。如果您正苦於以下問題:Java Channel.getInputStream方法的具體用法?Java Channel.getInputStream怎麽用?Java Channel.getInputStream使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.jcraft.jsch.Channel的用法示例。


在下文中一共展示了Channel.getInputStream方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: executeCommand

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
/**
 * Executes a given command. It opens exec channel for the command and closes
 * the channel when it's done.
 *
 * @param session ssh connection to a remote server
 * @param command command to execute
 * @return command output string if the command succeeds, or null
 */
private static String executeCommand(Session session, String command) {
    if (session == null || !session.isConnected()) {
        return null;
    }

    log.trace("Execute command {} to {}", command, session.getHost());

    try {
        Channel channel = session.openChannel("exec");
        ((ChannelExec) channel).setCommand(command);
        channel.setInputStream(null);
        InputStream output = channel.getInputStream();

        channel.connect();
        String result = CharStreams.toString(new InputStreamReader(output));
        channel.disconnect();

        log.trace("Result of command {} on {}: {}", command, session.getHost(), result);

        return result;
    } catch (JSchException | IOException e) {
        log.error("Failed to execute command {} on {} due to {}", command, session.getHost(), e.toString());
        return null;
    }
}
 
開發者ID:opencord,項目名稱:vtn,代碼行數:34,代碼來源:RemoteIpCommandUtil.java

示例2: executeCommand

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
public void executeCommand(final String command) throws IOException { // Cliente SSH final
    JSch jsch = new JSch();
    Properties props = new Properties();
    props.put("StrictHostKeyChecking", "no");
    try {
        Session session = jsch.getSession(user, host, 22);
        session.setConfig(props);
        session.setPassword(password);
        session.connect();
        java.util.logging.Logger.getLogger(RemoteShell.class.getName())
                .log(Level.INFO, session.getServerVersion());

        Channel channel = session.openChannel("exec");
        ((ChannelExec) channel).setCommand(command);
        // Daqui para baixo é somente para imprimir a saida
        channel.setInputStream(null);

        ((ChannelExec) channel).setErrStream(System.err);

        InputStream in = channel.getInputStream();

        channel.connect();

        byte[] tmp = new byte[1024];
        while (true) {
            while (in.available() > 0) {
                int i = in.read(tmp, 0, 1024);
                if (i < 0) {
                    break;
                }
                System.out.print(new String(tmp, 0, i));
            }
            if (channel.isClosed()) {
                if (in.available() > 0) {
                    continue;
                }
                System.out
                        .println("exit-status: " + channel.getExitStatus());
                break;
            }
            try {
                Thread.sleep(1000);
            } catch (Exception ee) {
            }
        }
        channel.disconnect();
        session.disconnect();

    } catch (JSchException ex) {
        java.util.logging.Logger.getLogger(RemoteShell.class.getName())
                .log(Level.SEVERE, null, ex);
    }
}
 
開發者ID:nailtonvieira,項目名稱:pswot-cloud-java-spring-webapp,代碼行數:54,代碼來源:RemoteShell.java

示例3: executeCommandReader

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
/**
 * Execute an ssh command on the server, without closing the session
 * so that a Reader can be returned with streaming data from the server.
 *
 * @param command the command to execute.
 * @return a Reader with streaming data from the server.
 * @throws IOException  if it is so.
 * @throws SshException if there are any ssh problems.
 */
@Override
public synchronized Reader executeCommandReader(String command) throws SshException, IOException {
    if (!isConnected()) {
        throw new IllegalStateException("Not connected!");
    }
    try {
        Channel channel = connectSession.openChannel("exec");
        ((ChannelExec)channel).setCommand(command);
        InputStreamReader reader = new InputStreamReader(channel.getInputStream(), "utf-8");
        channel.connect();
        return reader;
    } catch (JSchException ex) {
        throw new SshException(ex);
    }
}
 
開發者ID:sonyxperiadev,項目名稱:gerrit-events,代碼行數:25,代碼來源:SshConnectionImpl.java

示例4: connectAndExecute

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
public static String connectAndExecute(String user, String host, String password, String command1) {
	String CommandOutput = null;
	try {

		java.util.Properties config = new java.util.Properties();
		config.put("StrictHostKeyChecking", "no");
		JSch jsch = new JSch();

		Session session = jsch.getSession(user, host, 22);
		session.setPassword(password);
		session.setConfig(config);
		session.connect();
		// System.out.println("Connected");

		Channel channel = session.openChannel("exec");
		((ChannelExec) channel).setCommand(command1);
		channel.setInputStream(null);
		((ChannelExec) channel).setErrStream(System.err);

		InputStream in = channel.getInputStream();

		channel.connect();
		byte[] tmp = new byte[1024];
		while (true) {
			while (in.available() > 0) {
				int i = in.read(tmp, 0, 1024);

				if (i < 0)
					break;
				// System.out.print(new String(tmp, 0, i));
				CommandOutput = new String(tmp, 0, i);
			}

			if (channel.isClosed()) {
				// System.out.println("exit-status: " +
				// channel.getExitStatus());
				break;
			}
			try {
				Thread.sleep(1000);
			} catch (Exception ee) {
			}
		}
		channel.disconnect();
		session.disconnect();
		// System.out.println("DONE");

	} catch (Exception e) {
		e.printStackTrace();
	}
	return CommandOutput;

}
 
開發者ID:saiscode,項目名稱:kheera,代碼行數:54,代碼來源:SeleniumGridManager.java

示例5: testWrite

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
@Test
public void testWrite() throws Exception {
  termHandler = term -> {
    term.write("hello");
  };
  startShell();
  Session session = createSession("paulo", "secret", false);
  session.connect();
  Channel channel = session.openChannel("shell");
  channel.connect();
  Reader in = new InputStreamReader(channel.getInputStream());
  int count = 5;
  StringBuilder sb = new StringBuilder();
  while (count > 0) {
    int code = in.read();
    if (code == -1) {
      count = 0;
    } else {
      count--;
      sb.append((char)code);
    }
  }
  assertEquals("hello", sb.toString());
  channel.disconnect();
  session.disconnect();
}
 
開發者ID:vert-x3,項目名稱:vertx-shell,代碼行數:27,代碼來源:SSHServerTest.java

示例6: testDifferentCharset

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
@Test
public void testDifferentCharset(TestContext context) throws Exception {
  termHandler = term -> {
    term.write("\u20AC");
    term.close();
  };
  startShell(new SSHTermOptions().setDefaultCharset("ISO_8859_1").setPort(5000).setHost("localhost").setKeyPairOptions(
      new JksOptions().setPath("src/test/resources/server-keystore.jks").setPassword("wibble")).
      setAuthOptions(new ShiroAuthOptions().setType(ShiroAuthRealmType.PROPERTIES).setConfig(
          new JsonObject().put("properties_path", "classpath:test-auth.properties"))));
  Session session = createSession("paulo", "secret", false);
  session.connect();
  Channel channel = session.openChannel("shell");
  channel.connect();
  InputStream in = channel.getInputStream();
  int b = in.read();
  context.assertEquals(63, b);
}
 
開發者ID:vert-x3,項目名稱:vertx-shell,代碼行數:19,代碼來源:SSHServerTest.java

示例7: testAuthenticate

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
@Test
public void testAuthenticate() throws Exception {
  startShell();
  for (boolean interactive : new boolean[]{false, true}) {
    Session session = createSession("paulo", "secret", interactive);
    session.connect();
    Channel channel = session.openChannel("shell");
    channel.connect();
    InputStream in = channel.getInputStream();
    byte[] out = new byte[2];
    assertEquals(2, in.read(out));
    assertEquals("% ", new String(out));
    channel.disconnect();
    session.disconnect();
  }
}
 
開發者ID:vert-x3,項目名稱:vertx-shell,代碼行數:17,代碼來源:SSHTestBase.java

示例8: sendCommand

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
public String sendCommand(String command) throws JSchException, IOException {
   StringBuilder outputBuffer = new StringBuilder();

 
      Channel channel = sesConnection.openChannel("exec");
      ((ChannelExec)channel).setCommand(command);
      InputStream commandOutput = channel.getInputStream();
      channel.connect();
      int readByte = commandOutput.read();

      while(readByte != 0xffffffff)
      {
         outputBuffer.append((char)readByte);
         readByte = commandOutput.read();
      }

      channel.disconnect();
   

   return outputBuffer.toString();
}
 
開發者ID:lucee,項目名稱:Lucee,代碼行數:22,代碼來源:SSHManager.java

示例9: doSingleTransfer

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
private void doSingleTransfer() throws IOException, JSchException {
    StringBuilder sb = new StringBuilder("scp -t ");
    if (getPreserveLastModified()) {
        sb.append("-p ");
    }
    if (getCompressed()) {
        sb.append("-C ");
    }
    sb.append(remotePath);
    final String cmd = sb.toString();
    final Channel channel = openExecChannel(cmd);
    try {
        final OutputStream out = channel.getOutputStream();
        final InputStream in = channel.getInputStream();

        channel.connect();

        waitForAck(in);
        sendFileToRemote(localFile, in, out);
    } finally {
        if (channel != null) {
            channel.disconnect();
        }
    }
}
 
開發者ID:apache,項目名稱:ant,代碼行數:26,代碼來源:ScpToMessage.java

示例10: doMultipleTransfer

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
private void doMultipleTransfer() throws IOException, JSchException {
    StringBuilder sb = new StringBuilder("scp -r -d -t ");
    if (getPreserveLastModified()) {
        sb.append("-p ");
    }
    if (getCompressed()) {
        sb.append("-C ");
    }
    sb.append(remotePath);
    final Channel channel = openExecChannel(sb.toString());
    try {
        final OutputStream out = channel.getOutputStream();
        final InputStream in = channel.getInputStream();

        channel.connect();

        waitForAck(in);
        for (Directory current : directoryList) {
            sendDirectory(current, in, out);
        }
    } finally {
        if (channel != null) {
            channel.disconnect();
        }
    }
}
 
開發者ID:apache,項目名稱:ant,代碼行數:27,代碼來源:ScpToMessage.java

示例11: getPartitionStats

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
/**
 * Gets the list of partitions on the disk.
 * 
 * @param session
 *            the Session
 * @return the list of partitions on the disk
 * @throws JSchException
 *             the j sch exception
 * @throws IOException
 *             Signals that an I/O exception has occurred.
 */
private List<DiskPartitionInfo> getPartitionStats(Session session) throws JSchException, IOException {

	Channel channel = getChannel(session, PARTITION_LIST_COMMAND);
	InputStream in = null;
	List<DiskPartitionInfo> partitions = null;

	try {
		in = channel.getInputStream();
		partitions = new ArrayList<DiskPartitionInfo>();
		ResultParser resultParser = new ResultParser();
		resultParser.parseDiskPartitionResult(in, partitions);
	} finally {
		if (in != null) {
			in.close();
		}
		channel.disconnect();
	}
	getVmStatsForPartition(session, partitions);
	return partitions;
}
 
開發者ID:Impetus,項目名稱:jumbune,代碼行數:32,代碼來源:ProfilerJMXDump.java

示例12: onOutput

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
public void onOutput(Channel channel) {
    try {
        StringBuffer pbsOutput = new StringBuffer("");
        InputStream inputStream =  channel.getInputStream();
        byte[] tmp = new byte[1024];
        do {
            while (inputStream.available() > 0) {
                int i = inputStream.read(tmp, 0, 1024);
                if (i < 0) break;
                pbsOutput.append(new String(tmp, 0, i));
            }
        } while (!channel.isClosed()) ;
        String output = pbsOutput.toString();
        this.setStdOutputString(output);
    } catch (IOException e) {
        logger.error(e.getMessage(), e);
    }

}
 
開發者ID:apache,項目名稱:airavata,代碼行數:20,代碼來源:StandardOutReader.java

示例13: runCommand

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
public String runCommand(String command) throws Exception {
    Log.i(TAG + " runCommand", command);

    StringBuilder outputBuffer = new StringBuilder();

    Channel channel = session.openChannel("exec");
    ((ChannelExec) channel).setCommand(command);
    channel.connect();
    InputStream commandOutput = channel.getInputStream();
    int readByte = commandOutput.read();

    while (readByte != 0xffffffff) {
        outputBuffer.append((char) readByte);
        readByte = commandOutput.read();
    }

    channel.disconnect();

    String output = outputBuffer.toString();

    Log.i(TAG + " runCommand", command + ", output: " + output);
    return output;
}
 
開發者ID:yeokm1,項目名稱:nus-soc-print,代碼行數:24,代碼來源:SSHConnectivity.java

示例14: scpFileFromRemoteServer

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
/**
 * 
 * Scp file from remote server
 * 
 * @param host
 * @param user
 * @param password
 * @param remoteFile
 * @param localFile
 * @throws JSchException 
 * @throws IOException 
 */
public void scpFileFromRemoteServer(String host, String user, String password, String remoteFile, String localFile) throws JSchException, IOException {
	
	String prefix = null;
	if (new File(localFile).isDirectory()) {
		prefix = localFile + File.separator;
	}

	JSch jsch = new JSch();
	Session session = jsch.getSession(user, host, 22);

	// username and password will be given via UserInfo interface.
	UserInfo userInfo = new UserInformation(password);
	session.setUserInfo(userInfo);
	session.connect();

	// exec 'scp -f remoteFile' remotely
	String command = "scp -f " + remoteFile;
	Channel channel = session.openChannel("exec");
	((ChannelExec) channel).setCommand(command);

	// get I/O streams for remote scp
	OutputStream out = channel.getOutputStream();
	InputStream in = channel.getInputStream();

	channel.connect();

	byte[] buf = new byte[1024];

	// send '\0'
	buf[0] = 0;
	out.write(buf, 0, 1);
	out.flush();
	
	readRemoteFileAndWriteToLocalFile(localFile, prefix, out, in, buf);

	session.disconnect();		
}
 
開發者ID:capitalone,項目名稱:Hydrograph,代碼行數:50,代碼來源:SCPUtility.java

示例15: runShellCommand

import com.jcraft.jsch.Channel; //導入方法依賴的package包/類
@Override
public RemoteCommandReturnInfo runShellCommand(RemoteSystemConnection remoteSystemConnection, String command, long timeout) {
    final ChannelSessionKey channelSessionKey = new ChannelSessionKey(remoteSystemConnection, ChannelType.SHELL);
    LOGGER.debug("channel session key = {}", channelSessionKey);
    Channel channel = null;
    try {
        channel = getChannelShell(channelSessionKey);

        final InputStream in = channel.getInputStream();
        final OutputStream out = channel.getOutputStream();

        LOGGER.debug("Executing command \"{}\"", command);
        out.write(command.getBytes(StandardCharsets.UTF_8));
        out.write(CRLF.getBytes(StandardCharsets.UTF_8));
        out.write("echo 'EXIT_CODE='$?***".getBytes(StandardCharsets.UTF_8));
        out.write(CRLF.getBytes(StandardCharsets.UTF_8));
        out.write("echo -n -e '\\xff'".getBytes(StandardCharsets.UTF_8));
        out.write(CRLF.getBytes(StandardCharsets.UTF_8));
        out.flush();

        return getShellRemoteCommandReturnInfo(command, in, timeout);
    } catch (final Exception e) {
        final String errMsg = MessageFormat.format("Failed to run the following command: {0}", command);
        LOGGER.error(errMsg, e);
        throw new JschServiceException(errMsg, e);
    } finally {
        if (channel != null) {
            channelPool.returnObject(channelSessionKey, channel);
            LOGGER.debug("channel {} returned", channel.getId());
        }
    }
}
 
開發者ID:cerner,項目名稱:jwala,代碼行數:33,代碼來源:JschServiceImpl.java


注:本文中的com.jcraft.jsch.Channel.getInputStream方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。