本文整理汇总了Java中com.jcraft.jsch.Channel.setInputStream方法的典型用法代码示例。如果您正苦于以下问题:Java Channel.setInputStream方法的具体用法?Java Channel.setInputStream怎么用?Java Channel.setInputStream使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.jcraft.jsch.Channel
的用法示例。
在下文中一共展示了Channel.setInputStream方法的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;
}
}
示例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);
}
}
示例3: 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;
}
示例4: gatherMetrics
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
@Override
public final Collection<Metric> gatherMetrics(final ICommandLine cl) throws MetricGatheringException {
List<Metric> metrics = new ArrayList<Metric>();
Session session = null;
try {
session = SshUtils.getSession(cl);
Channel channel = session.openChannel("shell");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect();
metrics.add(new Metric("connected", "", new BigDecimal(1), null, null));
channel.disconnect();
session.disconnect();
} catch (Exception e) {
String message = e.getMessage();
metrics.add(new Metric("connected", message, new BigDecimal(0), null, null));
LOG.debug(getContext(), message, e);
}
return metrics;
}
示例5: sshCall
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
protected void sshCall(String username, String password, SshExecutor executor, String channelType) {
try {
JSch jsch = new JSch();
Session session = jsch.getSession(username, props.getShell().getHost(), props.getShell().getPort());
session.setPassword(password);
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
Channel channel = session.openChannel(channelType);
PipedInputStream pis = new PipedInputStream();
PipedOutputStream pos = new PipedOutputStream();
channel.setInputStream(new PipedInputStream(pos));
channel.setOutputStream(new PipedOutputStream(pis));
channel.connect();
try {
executor.execute(pis, pos);
} finally {
pis.close();
pos.close();
channel.disconnect();
session.disconnect();
}
} catch(JSchException | IOException ex) {
fail(ex.toString());
}
}
示例6: upload
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
public void upload(File srcFile, String destFile, long timeout) throws JSchException, SftpException, IOException {
Channel channel = this.session.openChannel("sftp");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect();
channels.add(channel);
new ChanneOperationTimer(channel, timeout).start();
ChannelSftp sftp = (ChannelSftp) channel;
sftp.put(FileUtils.openInputStream(srcFile), destFile);
sftp.exit();
}
示例7: download
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
public void download(String srcFile, File destFile, long timeout) throws JSchException, SftpException, IOException {
Channel channel = this.session.openChannel("sftp");
channel.setInputStream(System.in);
channel.setOutputStream(System.out);
channel.connect();
channels.add(channel);
new ChanneOperationTimer(channel, timeout).start();
ChannelSftp sftp = (ChannelSftp) channel;
try (FileOutputStream out = FileUtils.openOutputStream(destFile)) {
sftp.get(srcFile, out);
} finally {
sftp.exit();
}
}
示例8: executeCommandNoResponse
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
public static void executeCommandNoResponse( Session sessionObj, String command )
throws JSchException, IOException
{
logger.debug( "Starting to execute command [" + maskedPasswordString( command ) + "]" );
if ( sessionObj != null && command != null && !"".equals( command ) )
{
Channel channel = null;
try
{
channel = sessionObj.openChannel( "exec" );
( (ChannelExec) channel ).setCommand( command );
channel.setInputStream( null );
( (ChannelExec) channel ).setErrStream( System.err );
channel.getInputStream();
channel.connect();
/* We do not care about whether the command succeeds or not */
if ( channel.isClosed() && channel.getExitStatus() != 0 )
{
logger.debug( "Command exited with error code " + channel.getExitStatus() );
}
}
catch ( Exception e )
{
logger.error( "Received exception during command execution", e );
}
finally
{
if ( channel != null && channel.isConnected() )
{
channel.disconnect();
}
logger.debug( "End of execution of command [" + maskedPasswordString( command ) + "]" );
}
}
}
示例9: executeCommandNoResponse
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
public static void executeCommandNoResponse( Session sessionObj, String command )
throws JSchException, IOException
{
logger.debug( "Starting to execute command [" + command + "]" );
if ( sessionObj != null && command != null && !"".equals( command ) )
{
Channel channel = null;
try
{
channel = sessionObj.openChannel( "exec" );
( (ChannelExec) channel ).setCommand( command );
channel.setInputStream( null );
( (ChannelExec) channel ).setErrStream( System.err );
channel.getInputStream();
channel.connect();
/* We do not care about whether the command succeeds or not */
if ( channel.isClosed() && channel.getExitStatus() != 0 )
{
logger.debug( "Command exited with error code " + channel.getExitStatus() );
}
}
catch ( Exception e )
{
logger.error( "Received exception during command execution", e );
}
finally
{
if ( channel != null && channel.isConnected() )
{
channel.disconnect();
}
logger.debug( "End of execution of command [" + command + "]" );
}
}
}
示例10: executeCommand
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
private void executeCommand(String command) throws JSchException, IOException, InterruptedException {
connectIfNot();
Channel channel = session.openChannel("exec");
try {
((ChannelExec) channel).setCommand(command);
((ChannelExec) channel).setErrStream(System.err);
((ChannelExec) channel).setPty(true);
((ChannelExec) channel).setPtyType("vt100");
channel.setInputStream(null);
channel.setOutputStream(System.out);
InputStream in = channel.getInputStream();
logger.info("ssh exec command => {}", command);
channel.connect();
byte[] buffer = new byte[1024];
while (true) {
while (in.available() > 0) {
int i = in.read(buffer, 0, 1024);
if (i < 0) break;
messageLogger.info(new String(buffer, 0, i, Charsets.UTF_8));
}
if (channel.isClosed()) {
logger.info("ssh exec exit status => " + channel.getExitStatus());
break;
}
Thread.sleep(1000);
}
if (channel.getExitStatus() != 0) {
throw new JSchException("failed to run command, command=" + command);
}
} finally {
channel.disconnect();
}
}
示例11: runCommand
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
/**
* @param positiveExitCodes The exit codes to consider the command a success. This will normally be only 0, but in case of
* f.ex. 'diff' 1 is also ok.
*/
public void runCommand(String server, String command, int commandTimeout, String quotes, int[] positiveExitCodes)
throws Exception {
RemoteCommand remoteCommand = new RemoteCommand(server, command, quotes);
log.info("Running JSch command: " + remoteCommand);
BufferedReader inReader = null;
BufferedReader errReader = null;
JSch jsch = new JSch();
Session session = jsch.getSession("test", TestEnvironment.DEPLOYMENT_SERVER);
setupJSchIdentity(jsch);
session.setConfig("StrictHostKeyChecking", "no");
long startTime = System.currentTimeMillis();
session.connect();
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand(remoteCommand.commandAsString());
channel.setInputStream(null);
((ChannelExec) channel).setErrStream(null);
InputStream in = channel.getInputStream();
InputStream err = ((ChannelExec) channel).getErrStream();
channel.connect(1000);
log.debug("Channel connected, command: " + remoteCommand.commandAsString());
inReader = new BufferedReader(new InputStreamReader(in));
errReader = new BufferedReader(new InputStreamReader(err));
int numberOfSecondsWaiting = 0;
int maxNumberOfSecondsToWait = 60*10;
while (true) {
if (channel.isClosed()) {
log.info("Command finished in "
+ (System.currentTimeMillis() - startTime) / 1000
+ " seconds. " + "Exit code was "
+ channel.getExitStatus());
boolean errorOccured = true;
for (int positiveExit:positiveExitCodes) {
if (positiveExit == channel.getExitStatus()) {
errorOccured = false;
break;
}
}
if (errorOccured || err.available() > 0) {
throw new RuntimeException("Failed to run command, exit code " + channel.getExitStatus());
}
break;
} else if ( numberOfSecondsWaiting > maxNumberOfSecondsToWait) {
log.info("Command not finished after " + maxNumberOfSecondsToWait + " seconds. " +
"Forcing disconnect.");
channel.disconnect();
break;
}
try {
Thread.sleep(1000);
String s;
while ((s = inReader.readLine()) != null) {
if (!s.trim().isEmpty()) log.debug("ssh: " + s);
}
while ((s = errReader.readLine()) != null) {
if (!s.trim().isEmpty()) log.warn("ssh error: " + s);
}
} catch (InterruptedException ie) {
}
}
}
开发者ID:netarchivesuite,项目名称:netarchivesuite-svngit-migration,代码行数:74,代码来源:TestEnvironmentManager.java
示例12: getChannel
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
/**
* Gets the channel.
*
* @param session
* the session
* @param command
* the command
* @return the channel
* @throws JSchException
* the j sch exception
* @throws IOException
* Signals that an I/O exception has occurred.
*/
public static Channel getChannel(Session session, String command) throws JSchException, IOException {
session.connect();
LOGGER.debug("Session ["+session+"] connected");
Channel channel = session.openChannel("exec");
((ChannelExec) channel).setCommand(command);
channel.setInputStream(null);
InputStream in = channel.getInputStream();
channel.connect();
((ChannelExec) channel).setErrStream(System.err);
byte[] tmp = new byte[RemotingConstants.ONE_ZERO_TWO_FOUR];
while (true) {
while (in.available() > 0) {
int i = in.read(tmp, 0, RemotingConstants.ONE_ZERO_TWO_FOUR);
if (i < 0){
break;
}
}
if (channel.isClosed()) {
break;
}
}
LOGGER.debug("Channel connected, mode [exec]");
return channel;
}
示例13: getRemoteHomePath
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
private String getRemoteHomePath() {
final String getHomeCommand = "pwd";
try {
final Channel channel = this.remoteSession.openChannel("exec");
((ChannelExec) channel).setCommand(getHomeCommand);
channel.setInputStream(null);
final InputStream stdout = channel.getInputStream();
channel.connect();
byte[] tmp = new byte[1024];
StringBuilder homePath = new StringBuilder();
while (true) {
while (stdout.available() > 0) {
final int len = stdout.read(tmp, 0, 1024);
if (len < 0) {
break;
}
homePath = homePath.append(new String(tmp, 0, len, StandardCharsets.UTF_8));
}
if (channel.isClosed()) {
if (stdout.available() > 0) {
continue;
}
break;
}
}
return homePath.toString().trim();
} catch (final JSchException | IOException ex) {
throw new RuntimeException("Unable to retrieve home directory from " +
this.remoteHostName + " with the pwd command", ex);
}
}
示例14: execCmd
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
/**
* Execute command
* @param host
* @param user
* @param passwd
* @param cmd
* @return String the reply of remote session
*/
public String execCmd (String host, String user, String passwd, String cmd){
String replyy = "";
String reply = null;
try{
JSch jsch=new JSch();
Session session=jsch.getSession(user, host, 22);
UserInfo ui = new MyUserInfo(passwd);
session.setUserInfo(ui);
session.setTimeout(600000);
session.connect();
Channel channel=session.openChannel("exec");
((ChannelExec)channel).setCommand(cmd);
channel.setInputStream(null);
InputStreamReader in = new InputStreamReader(channel.getInputStream());
OutputStreamWriter out = new OutputStreamWriter(channel.getOutputStream());
BufferedWriter bw = new BufferedWriter(out);
BufferedReader br = new BufferedReader(in);
channel.connect();
while ((reply = br.readLine()) != null) {
bw.write(reply);
replyy=replyy+"\n"+reply;
bw.flush();
Thread.sleep(100);
}
while(true){
if(channel.isClosed()){
break;
} try{
Thread.sleep(1500);
} catch(Exception ee){
}
}
in.close();
out.close();
br.close();
bw.close();
channel.disconnect();
session.disconnect();
}
catch(Exception e){
log.error("ERROR , Possible no connection with : "+user+" "+passwd+ " "+host+"\n\t\t please check LAN and vpn connection or host");
}
return replyy;
}
示例15: outputCommandSSH
import com.jcraft.jsch.Channel; //导入方法依赖的package包/类
/**
* Execute SSH command and return output
* @param username The ssh user
* @param host The host to connect
* @param key The ssh key
* @param commandssh The command to launch
* @return the output of the command
*/
public String outputCommandSSH(String username, String host, String key, String commandssh){
String res = "";
try{
JSch jsch=new JSch();
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no"); //avoid host key checking
int SSH_port = 22;
jsch.addIdentity(key , "passphrase");
Session session=jsch.getSession(username, host, SSH_port); //SSH connection
if(new Configuration().Debug){
System.out.println("Connection to "+host+" on the port "+SSH_port+" with key: "+key+" and username: "+username);
}
// username and passphrase will be given via UserInfo interface.
UserInfo ui=new MyUserInfo();
session.setUserInfo(ui);
session.setConfig(config);
session.connect();
Channel channel=session.openChannel("exec"); // open channel for exec command
((ChannelExec)channel).setCommand(commandssh);
channel.setInputStream(null);
((ChannelExec)channel).setErrStream(System.err);
InputStream in=channel.getInputStream();
channel.connect();
/*
* get output ssh command launched
*/
byte[] tmp=new byte[1024];
while(true){
while(in.available()>0){
int i=in.read(tmp, 0, 1024);
if(i<0)break;
res += new String(tmp, 0, i);
//System.out.print(new String(tmp, 0, i));
}
if(channel.isClosed()){
if(in.available()>0) continue;
if(new Configuration().Debug){
System.out.println("exit-status: "+channel.getExitStatus());
}
break;
}
try{Thread.sleep(1000);}catch(Exception ee){}
}
channel.disconnect();
session.disconnect();
}
catch(Exception e){
System.out.println(e);
}
return res;
}