`
chilongxph
  • 浏览: 135567 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

sftp同步远程服务器文件

XML 
阅读更多
public class SftpTool {
private static LogTool logger = LogTool.getLogger(SftpTool.class.getName());
//出现连接异常时,重复连接三次
public static ChannelSftp getSftpChannel(String host, int port,
String username, String password,int i)throws Exception {
ChannelSftp sftp = null;
JSch jsch = new JSch();
try {
jsch.getSession(username, host, port);
Session sshSession = jsch.getSession(username, host, port);
System.out.println("Session created.");
sshSession.setPassword(password);
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
sshSession.setConfig(sshConfig);
sshSession.connect();
Channel channel = sshSession.openChannel("sftp");
channel.connect();
sftp = (ChannelSftp) channel;
return sftp;
} catch (JSchException e) {
if(i>=1){
SftpTool.getSftpChannel(host, port, username, password,i-1);
}
e.printStackTrace();
logger.error(e.getMessage());
throw new Exception("Contact remote service failed");
}

}
//ConfigFileTool 用来读取配置文件信息
public void uploadFile() throws Exception {
Document doc = null;
try {
doc = ConfigFileTool.getLocalDocument("sftp_config.xml");
} catch (Exception e) {
e.printStackTrace();
logger.error(e.getMessage());
throw new Exception(e.getMessage());
}
List<Element> eleList = doc.selectNodes("//config/service");
if (null == eleList || 1 < eleList.size()) {
throw new Exception("The node that you select is not exists!");
}
Element ele = eleList.get(0);
String host = ele.element("host").getTextTrim();
int port = Integer.valueOf(ele.element("port").getTextTrim());
String username = ele.element("username").getTextTrim();
String password = ele.element("password").getTextTrim();
String directory = ele.element("remotedir").getTextTrim();
String uploadFile = ele.element("localdir").getTextTrim();
//3,为了采用递归的方式,实现出现异常时,重复连接三次
ChannelSftp sftp = SftpTool.getSftpChannel(host, port, username,
password,3);

try {
sftp.cd(directory);
File file = new File(uploadFile);
sftp.put(new FileInputStream(file), file.getName());
} catch (FileNotFoundException e) {
e.printStackTrace();
logger.error(e.getMessage());
throw new Exception("The file " + uploadFile + " not exists");
} catch (SftpException e) {
logger.error(e.getMessage());
e.printStackTrace();
throw new Exception("Upload file to remote service failed");
}finally {
//关闭连接
   if (sftp != null && sftp.isConnected()) {
   sftp.getSession().disconnect();
   sftp.quit();
   sftp.disconnect();
   }
}

}
}
分享到:
评论

相关推荐

    Xftp Linux远程控制文件上传下载工具

    Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的...

    Kitchen-Sink:使用sftp将本地目录同步到远程服务器(主要用于Pantheon Multidev环境)

    #Kitchen Sync ####使用sftp将本地目录同步到远程服务器(主要用于Pantheon Multidev环境) ##安装 git clone ...--help Print usage instructions. --host &lt;string&gt; The SSH hostname. --port &lt;string&gt; The SSH port...

    vscode-sftp-revived:VSCode SFTP文件同步已恢复!

    在VS Code ,打开要同步到远程服务器的本地目录(或创建一个空目录,该目录首先要下载远程服务器文件夹的内容以便在本地进行编辑)。 在Windows / Linux上为Ctrl+Shift+P ,在Mac上为Cmd+Shift+P打开命令选项板,...

    Forklift 3.3.4 远程/本地文件管理利器

    Forklift 可以实现本地远程目录同步,FXP 复制(不经过本机的服务器到服务器文件传输),远程编辑;若有网站远程文件管理需求,这些功能是方便多人合作的大杀器。 软件还提供各种便民功能,Synclet/Disklet/Droplet...

    Xftp是一个功能强大的SFTP和FTP文件传输软件

    自动同步功能:可以帮助用户在不同主机之间自动传输文件,并比较本机和服务器上文件的不同。 拖放操作:支持将文件拖放到服务器或从服务器拖放到本地,简化文件传输过程。 增强安全性:支持多种身份验证方法和加密...

    文件同步软件

     4、远程FTP服务器!  5、WebDAV!  6、Amazon S3!  7、SFTP!  8、Google Drive 云端网盘!  9、Windows Azure!  10、Amazon Cloud Drive云端!  11、SkyDrive网盘!  12、WinMobile!

    linux通过跳板机连接远程服务器并进行文件传输的方法

    主要介绍了linux通过跳板机连接远程服务器并进行文件传输的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

    Xftp-Linux远程登录-免费的服务器上传下载工具 (永久使用版)

    Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的...

    Pycharm远程连接服务器,实现代码同步上传更新。

    或者本地修改,上传到服务器,各种不爽,现在改用xshell,但是有时候还是不方便感觉,于是自己配置了远程连接pycharm,这样不用总是到代码里修改,直接在windows下pycharm里修改再保存就可以实现同步更新到服务器里...

    sublime-sync:Sublime SFTP插件的目录观察器同步工具

    如果检测到更改,文件将自动与您的远程SFTP目录同步。 它仍然使用sftp-config.json中的SFTP服务器设置/凭据,并遵守在'ignore_regexes'中设置的忽略规则。 如果未找到sftp-config.json,则将提示用户输入主机/凭据...

    SSH 开源图形化 SFTP 客户端 WinSCP 5.17.9.zip

    使用 WinSCP 可以连接到一台提供 SFTP (SSH File Transfer Protocol)或 SCP (Secure Copy Protocol)服务的 SSH (Secure Shell)服务器,通常是 UNIX 服务器。SFTP 包含于 SSH-2 包中,SCP 在 SSH-1 包中。两种协议都...

    文件对比工具-UltraCompare.zip(提高编程效率)

    此工具可进行文本模式,文件夹模式以及二进制模式的比较,并且可以对比较的文件进行合并,同步等操作,支持撤消操作...远程比较文件,使用 FTP/SFTP 下载远程文件,执行比较/合并操作,然后仍旧将文件保存在服务器上。

    WinSCP5.21.5便捷FTP应用

    站点管理:用户可以保存和管理多个远程站点的连接信息,方便快速访问不同的远程服务器。 多语言支持:WinSCP提供多种语言的界面,适应不同用户的需求。 指令行界面:除了图形界面外,WinSCP还提供指令行界面,使用户...

    vscode-sftp:VS Code的超快速sftpftp扩展

    VSFTP的sftp同步扩展 将本地目录与远程服务器目录同步。 允许您在本地保存文件后,有选择地编辑将文件上传到远程目录。 这使您可以类似于WinScp或其他类似程序,在服务器上直接或多或少地进行编辑。 非常强大,...

    FTP 文件传输管理工具 FTPGetter Professional 5.97.0.215 中文多语免费版.zip

    FTPGetter 自动执行 FTP 和 SFTP 上载和下载,安排远程服务器位置与本地或网络工作站之间的 FTP/SFTP 传输。计划您的工作流程并只设置一次计划,FTPGetter 将取消例程!选择方便的时间,选择星期几,或选择每月日期...

    Linux服务器远程连接工具

    5.终端,sftp同屏显示,同步切换目录. 6.命令自动提示,智能匹配,输入更快捷,方便. 7.sftp支持,通过各种优化技术,加载更快,切换,打开目录无需等待. 8.服务器网络,性能实时监控,无需安装服务器插件. 9.内置海外服务器...

    WinSCP (Windows Secure Copy) 免费开源的广泛用于与Unix和Linux服务器系统的文件交互

    是一个免费、开源的Windows应用程序,主要用于通过SFTP (SSH File Transfer Protocol)、SCP (Secure Copy Protocol)、FTP (File Transfer Protocol) 和WebDAV协议在本地计算机和远程计算机之间安全地传输文件。...

    node-live-sync:监视文件更改并通过sftp同步(需要添加更多选项)

    监视文件夹中的文件更改,并通过SFTP自动将其同步到远程服务器。安装$ npm install -g live-sync 用法$ live_sync &lt;path&gt; &lt;host&gt; &lt;username&gt; &lt;password&gt; &lt;path&gt; 托多斯添加更多的传输层,例如FTP。

    免费的 FileZilla 中文版

    FTPGetter 自动执行 FTP 和 SFTP 上载和下载,安排远程服务器位置与本地或网络工作站之间的 FTP/SFTP 传输。计划您的工作流程并只设置一次计划,FTPGetter 将取消例程!选择方便的时间,选择星期几,或选择每月日期...

    FinalShell SSH工具,服务器管理,远程桌面加速软件

    5.终端,sftp同屏显示,同步切换目录. 6.命令自动提示,智能匹配,输入更快捷,方便. 7.sftp支持,通过各种优化技术,加载更快,切换,打开目录无需等待. 8.服务器网络,性能实时监控,无需安装服务器插件. 9.内置海外服务器...

Global site tag (gtag.js) - Google Analytics