通过 ftp 直接将文件传输到 ftp

通过 ftp 直接将文件传输到 ftp

你好,我想通过 ftp 将一些文件(非常大)从 A 服务器传输到 B 服务器。

我有服务器 A 的 ftp 和服务器 B 的 ftp 的凭证 - 服务器 B 是我自己运行 unix 的服务器。

所以有人可以建议我如何通过 ftp 从服务器 A 直接传输文件到服务器 B

答案1

为什么不直接在服务器 B 上运行 (s)ftp?ssh 到服务器 B,从 shell 启动 ftp [服务器 A]。然后获取文件。

答案2

有一个专门为这项任务设计的协议,在两个远程 FTP 服务器之间移动文件,它被称为 FXP(文件交换协议:http://en.wikipedia.org/wiki/File_eXchange_Protocol)。

如果您的服务器支持它,我建议这样做,任何像样的 FTP 客户端都会允许您启动传输。

否则,您可以使用另一台机器作为 FTP 客户端的中介,但速度可能会慢很多(取决于您的 Internet 连接)并且会占用更多的带宽。

答案3

使用安全复制 (scp)将为您服务。

scp /路径/到/目录/文件名 remoteuser@serverB:/路径/到/目录/文件名

在 Windows 上
使用油灰为了登录服务器 A,更改为 root 用户,并使用 scp 命令传输文件。

在 Linux 上
登录服务器A,更改为root用户,并使用scp命令传输文件。

答案4

假设您只能使用 ftp,因为您没有声明可以使用 scp,最简单的方法可能是使用服务器 B 上的 ncftp 等工具从服务器 A 下载文件。有许多命令行工具可用于此目的,如 wget、curl 等。如果您需要定期执行此操作,可以稍后通过 cron 或类似程序自动执行。

最好使用 scp 或 rsync 和 ssh 等工具,因为它们可以加密流量,并且(可以说)更容易设置以传输整个目录。因此,您可能希望先进行测试,看看是否可以(在服务器 B 上)运行如下命令:

ssh usernameA@serverA # 将 usernameA 替换为用户名,将 serverA 替换为 serverA 的名称/IP

看看是否可以登录。如果可以,则可以使用 scp 或 rsync。如果系统之间的链接很慢或不可靠,则最好使用 rsync,可以使用以下形式的命令:(在服务器 B 上下载文件)rsync -a -v -z --partial usernameA@serverA:/path/to/file。

这会将文件从服务器 A 作为用户名 A rsync 到服务器 B 上的当前工作目录中,并且如果 rsync 中断,则第二次运行将从连接丢失时重新开始。-z 添加压缩,如果文件已经压缩则不要使用 -a 打开一堆选项,本质上是说复制内容并保留有关文件的所有内容(日期戳等)

相关内容