FTP 使用 SSH/command 行将服务器传输到服务器

FTP transfer server to server using SSH/command line

我有很多供应商可以使用他们的 FTP 下载他们产品的图片。其中一些人喜欢将它们放入多个子文件夹中,使用集合或样式名称,然后使用 sku。例如,他们将使文件夹结构如下:

Main folder
---> Collection A
------> Sku A
----------> SKUApicture1.jpg, SKUApicture2.jpg
------> sku B
----------> SKUBpicture1.jpg, SKUBpicture2.jpg

---> Collection B
------> Sku C
----------> SKUCpicture1.jpg, SKUCpicture2.jpg
------> sku D
----------> SKUDpicture1.jpg, SKUDpicture2.jpg

直到现在,我发现最简单的方法是通过 SSH 登录到我的服务器,导航到我想要的文件夹,然后登录到我供应商的 FTP,此时我输入用户名a PW 并导航到我想要的文件夹,然后使用 mget 拍摄所有图像。如果所有(或大部分)文件都在 1 个文件夹中,这很简单。

问题是 mget 不会获取文件夹或子文件夹,它只会获取给定文件夹中的文件。在上面的示例中,我的供应商有 10 多个文件夹,每个文件夹都有 100 多个子文件夹,因此无法导航到每个文件夹。

此外,我从事的行业并不精通技术,所以请他们 "tech people" 到 enable/allow SCP, S FTPrsync 等可能不是一个选项。

在本地下载所有图像并将它们重新上传到我的服务器也不可行,因为这个文件夹超过 10GB。

我正在寻找一个命令(mget 或其他命令),使我能够按原样获取所有文件和子文件夹,并直接复制到我的服务器(通过 SSH).

谢谢

注意: 对于这个特定的服务器,我尝试了 rsync,但出现错误,告诉我它与该命令不兼容。我怀疑我的命令有误,但是如果你想 post 以正确的方式 rsync 我会很乐意再试一次并提供确切的错误

您是否考虑过使用 SFTP?您说过 FTP 以您希望的方式工作,而 SFTP 以完全相同的方式工作。具有 SFTP 支持的 FTP 客户端的行为方式完全相同,但它使用 SSH 进行连接。

你有没有试过

wget -r ftp://username:password@ftp.example.com/

它应该递归地从远程ftp获取所有文件。

您可以使用 lftp:

lftp -e 'mirror <remote download dir> <local download dir>' -u <username>,<pass> <host>

摘自 Copying Folder Contents with Subdirectories Over FTP.