|
|
|
@ -4,9 +4,6 @@ import com.jcraft.jsch.*;
|
|
|
|
|
import com.xxl.job.core.context.XxlJobHelper; |
|
|
|
|
|
|
|
|
|
import java.io.*; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Objects; |
|
|
|
|
import java.util.Properties; |
|
|
|
|
|
|
|
|
|
public class JschUtil { |
|
|
|
@ -208,20 +205,20 @@ public class JschUtil {
|
|
|
|
|
Properties config = new Properties(); |
|
|
|
|
config.put("StrictHostKeyChecking", "no"); |
|
|
|
|
session.setConfig(config); |
|
|
|
|
// 超时连接时间为3秒
|
|
|
|
|
session.setTimeout(30000); |
|
|
|
|
// 超时连接时间为60秒
|
|
|
|
|
session.setTimeout(60000); |
|
|
|
|
// 进行连接
|
|
|
|
|
session.connect(); |
|
|
|
|
// 打开SFTP通道
|
|
|
|
|
chSftp = (ChannelSftp) session.openChannel("sftp"); |
|
|
|
|
// 建立STFP连接
|
|
|
|
|
chSftp.connect(); |
|
|
|
|
chSftp.connect(60000); |
|
|
|
|
// 设置编码格式
|
|
|
|
|
chSftp.setFilenameEncoding("UTF-8"); |
|
|
|
|
// 创建一个文件名称问uploadFile的文件
|
|
|
|
|
File file = new File(uploadFile); |
|
|
|
|
chSftp.put(new FileInputStream(file), uploadFile); |
|
|
|
|
XxlJobHelper.log("文件上传成功到:"+file.getName()); |
|
|
|
|
chSftp.put(new FileInputStream(file), directory, ChannelSftp.OVERWRITE); |
|
|
|
|
XxlJobHelper.log("文件上传成功到:" + file.getName()); |
|
|
|
|
} catch (JSchException | SftpException | FileNotFoundException e) { |
|
|
|
|
XxlJobHelper.log(e.getMessage()); |
|
|
|
|
} finally { |
|
|
|
@ -288,54 +285,54 @@ public class JschUtil {
|
|
|
|
|
public void directory(String path) { |
|
|
|
|
|
|
|
|
|
try { |
|
|
|
|
jSch = new JSch(); |
|
|
|
|
jSch = new JSch(); |
|
|
|
|
|
|
|
|
|
// 根据主机账号、ip、端口获取一个Session对象
|
|
|
|
|
session = jSch.getSession(username, host, port); |
|
|
|
|
// 根据主机账号、ip、端口获取一个Session对象
|
|
|
|
|
session = jSch.getSession(username, host, port); |
|
|
|
|
|
|
|
|
|
// 存放主机密码
|
|
|
|
|
session.setPassword(password); |
|
|
|
|
// 存放主机密码
|
|
|
|
|
session.setPassword(password); |
|
|
|
|
|
|
|
|
|
// 去掉首次连接确认
|
|
|
|
|
Properties config = new Properties(); |
|
|
|
|
config.put("StrictHostKeyChecking", "no"); |
|
|
|
|
session.setConfig(config); |
|
|
|
|
// 去掉首次连接确认
|
|
|
|
|
Properties config = new Properties(); |
|
|
|
|
config.put("StrictHostKeyChecking", "no"); |
|
|
|
|
session.setConfig(config); |
|
|
|
|
|
|
|
|
|
// 超时连接时间为3秒
|
|
|
|
|
session.setTimeout(30000); |
|
|
|
|
// 超时连接时间为3秒
|
|
|
|
|
session.setTimeout(30000); |
|
|
|
|
|
|
|
|
|
// 进行连接
|
|
|
|
|
session.connect(); |
|
|
|
|
// 进行连接
|
|
|
|
|
session.connect(); |
|
|
|
|
|
|
|
|
|
// 打开SFTP通道
|
|
|
|
|
chSftp = (ChannelSftp) session.openChannel("sftp"); |
|
|
|
|
// 打开SFTP通道
|
|
|
|
|
chSftp = (ChannelSftp) session.openChannel("sftp"); |
|
|
|
|
|
|
|
|
|
// 建立SFTP通道的连接
|
|
|
|
|
chSftp.connect(); |
|
|
|
|
// 建立SFTP通道的连接
|
|
|
|
|
chSftp.connect(); |
|
|
|
|
|
|
|
|
|
String[] folders = path.split("/"); |
|
|
|
|
for (String folder : folders) { |
|
|
|
|
if (folder.length() > 0) { |
|
|
|
|
String[] folders = path.split("/"); |
|
|
|
|
for (String folder : folders) { |
|
|
|
|
if (folder.length() > 0) { |
|
|
|
|
try { |
|
|
|
|
chSftp.cd(folder); |
|
|
|
|
} catch (SftpException e) { |
|
|
|
|
try { |
|
|
|
|
chSftp.mkdir(folder); |
|
|
|
|
XxlJobHelper.log("生成目录" + folder); |
|
|
|
|
chSftp.cd(folder); |
|
|
|
|
} catch (SftpException e) { |
|
|
|
|
try { |
|
|
|
|
chSftp.mkdir(folder); |
|
|
|
|
XxlJobHelper.log("生成目录" + folder); |
|
|
|
|
chSftp.cd(folder); |
|
|
|
|
} catch (SftpException ex) { |
|
|
|
|
throw new RuntimeException(ex); |
|
|
|
|
} |
|
|
|
|
} catch (SftpException ex) { |
|
|
|
|
throw new RuntimeException(ex); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} catch (JSchException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} finally { |
|
|
|
|
close(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} catch (JSchException e) { |
|
|
|
|
throw new RuntimeException(e); |
|
|
|
|
} finally { |
|
|
|
|
close(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|