在两个 FTP 服务器之间传输文件

在两个 FTP 服务器之间传输文件

我有两个网站托管包:一个包 (A) 来自托管商 A,另一个包 (B) 来自另一个托管商 B(不同网络)。我可以通过 FTP 将文件从本地计算机传输到网站托管包 A 和/或网站托管包 B。

现在我想将文件夹和文件从主机 A 直接传输到主机 B。我尝试了 FXP,但主机 A 和主机 B 不允许这样做(500 非法 PORT 命令)。我无法更改设置以允许 FXP(这是一个普通的虚拟主机包,所以我没有 SSH/root 访问权限或类似的东西)。

我知道我可以使用本地机器(私人计算机)上的 FTP 客户端从主机 A 下载内容并手动将其重新上传到主机 B,但这将花费很长时间(大数据 - 许多文件)。

我不认为有办法在没有任何“帮助”的情况下将文件直接从 A 传输到 B,但我还有一个 Linux 根服务器 C(来自主机 C)。有没有办法使用我的服务器 C 传输文件(脚本、程序、工作流……)?比如通过 FTP 从包 A 下载 file1.txt 到服务器 C,将其从服务器 C 上传到包 B,在服务器 C 上删除它,下载下一个文件 file2.txt 等等?

答案1

使用curlftpfs在你的 Linux 服务器 C 上。

该程序curlftpfs是一个将远程 ftp 主机挂载为本地目录的工具。

这是一个保险丝解决方案,熟悉安全问题。您可以(并且应该)以普通用户身份进行安装。例如:

curlftpfs -r ftp.dd-wrt.com ~/mnt/foo/

将 A 和 B 安装到不同的安装点。然后使用任何工具复制/移动文件,就像您对本地文件所做的那样:cp -r,,mc等等。最终卸载。卸载的示例命令:

fusermount -u ~/mnt/foo/

答案2

经过大量的研究和反复试验后,我决定编写自己的脚本来在两个 FTP 服务器之间A以及B通过根服务器传输文件C

其出版于GitHub 作为FTP 移动服务器文件。它目前处于早期开发阶段,但它有助于摆脱私人机器上正常描述的工作流程。

相关内容