系统相关
首页 > 系统相关> > 用于将文件从一台Linux机器复制到另一台Linux机器的Java代码

用于将文件从一台Linux机器复制到另一台Linux机器的Java代码

作者:互联网

我正在寻找java代码将文件复制到远程linux系统.我通过传递一个scp命令尝试了Runtime.getRuntime().exec()函数,但每次运行程序时都要求输入远程系统密码.我想避免这种情况.

我查看了Jsch库 – 使用它我可以登录到远程系统 – 但是我无法将文件复制到远程系统.一旦我登录,我可以scp到我的主机,但它再次需要主机系统用户名和密码.但是,我只有远程系统的信息.

解决方法:

将文件从一个主机复制到另一个主机需要远程主机上的守护程序,实现一些应用程序级文件传输协议.无论您要使用哪种语言与该远程守护程序进行通信,这都是一项要求.

您对Linux系统的选择是:

> SSH.这需要远程端的SSH守护进程(比如openssh-server).由于ssh是为安全性而设计的,因此您必须配置远程主机以使用密码或私钥对您进行身份验证.实际上,复制文件可以通过scp实用程序或ssh客户端库完成(jsch就是这样的一个例子).
> NFS.远程主机安装守护程序(例如samba)并共享一些文件.您的本地计算机(cifs-utils软件包具有此功能)可以在本地文件系统上安装远程位置.这样,您只需在本地复制文件即可将文件复制到远程主机.身份验证是可选的,文件通过网络以简单方式发送.
> FTP. ftp服务器安装在远程端,并配置为允许某些用户访问某些位置.然后,您可以使用任何ftp客户端或某些ftp客户端库(例如,来自Apache项目的commons-net库)连接到远程ftp服务器并复制文件.身份验证是可选的,文件通过网络以简单方式发送.

所有这些似乎都是很多工作,并且事实上,因为没有一个广泛采用的标准化协议可以在大多数系统上实现和配置开箱即用.

标签:java,scp,file-copy
来源: https://codeday.me/bug/20190810/1637106.html