java jsch shell_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;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值