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

时间:2015-02-23 21:58:31

标签: command-line ssh ftp rsync

我有很多供应商使他们的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,此时我输入了一个用户名PW并导航到我想要的文件夹,然后使用mget获取所有图像。如果所有(或大多数)文件都在1个文件夹中,这很简单。

问题是 mget 赢得文件夹或子文件夹,它只会占用给定文件夹中的文件。在上面的示例中,我的供应商有超过10个文件夹,每个文件夹都有100多个子文件夹,因此导航到每个文件夹都不是一个选项。

此外,我所涉及的行业并非技术娴熟,所以要求他们的科技人员#34;启用/允许 SCP SFTP rsync 等,可能不是一种选择。

在本地下载所有图像并将其重新上传到我的服务器也不实用,因为此文件夹超过10GB。

我正在寻找一个命令( mget 或其他),它可以让我按原样获取所有文件和子文件夹,然后直接复制到我的服务器(通过 SSH )。

由于

注意:对于此特定服务器,我尝试了 rsync ,但收到错误告诉我它与该命令不兼容。我怀疑我的命令是错误的,但如果你想以正确的方式发布 rsync ,我会更乐意再次尝试并提供确切的错误

3 个答案:

答案 0 :(得分:1)

你有没有试过像

这样的东西
wget -r ftp://username:password@ftp.example.com/

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

答案 1 :(得分:1)

您可以使用lftp

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

取自Copying Folder Contents with Subdirectories Over FTP

答案 2 :(得分:0)

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