jsch包操作笔记
2018-06-18 03:28:36来源:未知 阅读 ()
通过jsch类包操作xshell
代码如下
package com;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import com.jcraft.jsch.Channel;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class UploadWar {
public static void main(String[] args) {
String ftpHost = "";
int port = 22;
String ftpUserName = "";
String ftpPassword = "";
Session session;
try {
session = con(ftpHost, port, ftpUserName, ftpPassword);
String src = "H:\\test.png"; // 本地文件名
String dst = ""; // 待上传到xshell的文件路径
Upload(session, src, dst);
String cmd1 = "cd shell; sh deploy_ngcrmpfcore_nm.sh ";//执行的命令
Command(session, cmd1);
String win = "d:\\log\\";//本地路径
String linux = "";//xshell的文件路径
UploadWar.Download(session, linux, win);
} catch (JSchException | SftpException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @param src
* Windows下的文件路径
* @param dst
* 需要上传到xshell的文件夹
* @throws JSchException
* @throws SftpException
*/
public static void Upload(Session session, String src, String dst) throws JSchException, SftpException {
Channel channel = session.openChannel("sftp"); // 打开SFTP通道
channel.connect(); // 建立SFTP通道的连接
// System.out.println("Connected successfully to ftpHost ")
((ChannelSftp) channel).put(src, dst);
}
/**
* @throws JSchException
* @throws SftpException
*/
public static void Download(Session session, String src, String dst) throws JSchException, SftpException {
Channel channel = session.openChannel("sftp"); // 打开SFTP通道
channel.connect(); // 建立SFTP通道的连接
// System.out.println("Connected successfully to ftpHost ")
((ChannelSftp) channel).get(src, dst);
}
/**
* @param cmd
* 脚本命令
* @throws JSchException
* @throws IOException
*/
public static List<String> Command(Session session, String cmd) throws JSchException, IOException {
List<String> l = new ArrayList<String>();
Channel channel2 = session.openChannel("exec");
ChannelExec execChannel = (ChannelExec) channel2;
execChannel.setCommand(cmd);
InputStream in = channel2.getInputStream();
channel2.connect();
StringBuffer sb = new StringBuffer();
int c = -1;
while ((c = in.read()) != -1) {
sb.append((char) c);
}
l.add(sb.toString());
in.close();
return l;
}
/**
* @param session
* 建立SFTP通道的连接
*
* @throws JSchException
*/
public static ChannelSftp getChannel(Session session) throws JSchException {
Channel channel = session.openChannel("sftp"); // 打开SFTP通道
channel.connect(); // 建立SFTP通道的连接
System.out.println("Connected successfully to ftpHost ");
return (ChannelSftp) channel;
}
/**
*
* @param ftpHost
* IP
* @param port
* 端口 22
* @param ftpUserName
* 用户名
* @param ftpPassword
* 用户密码
* @return session 用于登陆
* @throws JSchException
*
*/
public static Session con(String ftpHost, int port, String ftpUserName, String ftpPassword) throws JSchException {
JSch jsch = new JSch(); // 创建JSch对象
Session session = jsch.getSession(ftpUserName, ftpHost, port); // 根据用户名,主机ip,端口获取一个Session对象
System.out.println("Session created.");
if (ftpPassword != null) {
session.setPassword(ftpPassword); // 设置密码
}
Properties config = new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config); // 为Session对象设置properties
session.connect(); // 通过Session建立链接
session.openChannel("sftp");
return session;
}
}
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:简要概述java内存模型,以及volatile关键字
下一篇:final关键字
- 学习Java 8 Stream Api (4) - Stream 终端操作之 collect 2020-06-11
- JVM系列之.JVM内存模型如何正确运用操作?本文详解 2020-06-04
- 我天!xx.equals(null) 是什么骚操作?? 2020-06-01
- 什么,容器太多操作不过来?我选择Docker Compose梭哈 2020-05-28
- java.lang.String 的 + 号操作到底做了什么? 2020-05-22
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
