从具有服务器限制的纯ftp服务器下载所有文件

从具有服务器限制的纯ftp服务器下载所有文件,ftp,wget,ftp-client,lftp,Ftp,Wget,Ftp Client,Lftp,我需要从FTP服务器下载所有文件,但服务器的查找限制为10000,这使事情变得复杂 我不能使用wget-mftp://username:password@服务器地址,因为它只下载前10000个文件。我可以使用mget如mget20[12]*,mget20[34]*等。但是它很麻烦,有些下载失败,我不知道是哪一个 现在我遇到了lftp。我对这个命令寄予厚望 mirror --use-pget=10 --only-missing --no-symlinks 但它不下载任何东西,只是输出 To be

我需要从FTP服务器下载所有文件,但服务器的查找限制为10000,这使事情变得复杂

我不能使用wget-mftp://username:password@服务器地址,因为它只下载前10000个文件。我可以使用
mget
mget20[12]*
mget20[34]*
等。但是它很麻烦,有些下载失败,我不知道是哪一个

现在我遇到了
lftp
。我对这个命令寄予厚望

mirror --use-pget=10 --only-missing --no-symlinks
但它不下载任何东西,只是输出

To be removed: 0 directories, 70695 files, 0 symlinks
现在我不知道如何在有限制的情况下从FTP服务器下载所有文件

编辑
现在,我继续创建了一个脚本,它生成了一个
missing.txt
,其中包含我仍然需要下载的文件列表。如何使用该文件逐个下载文件?列表是分隔的。

因此我继续编写了一个脚本,将所有缺少的文件命名为
missing.txt
。然后我创建了一个循环来下载每个文件。现在它实际上是一个接一个的下载。
download.sh
脚本如下所示

#!/bin/bash
HOST='HOSTNAME'
USER='USERNAME'
PASSWD='PASSWORD'

echo open $HOST > ftp.txt
# echo ascii >> ftp.txt
echo user $USER $PASSWD >> ftp.txt
# echo prompt no >> ftp.txt

while read p; do
    echo "get $p"
done <missing.txt >> ftp.txt

echo bye >> ftp.txt
ftp -in < ftp.txt
rm ftp.txt
#/bin/bash
主机名
USER='USERNAME'
PASSWD='PASSWORD'
echo open$HOST>ftp.txt
#echo ascii>>ftp.txt
echo user$user$PASSWD>>ftp.txt
#回声提示号>>ftp.txt
读p;做
echo“获得$p”
完成>ftp.txt
echo bye>>ftp.txt
ftp-in

然后只需运行
/download.sh

1)你的问题就离题了。2) 如果服务器不给你所有文件的列表,你就无能为力了。更改FTP客户端无法提供帮助。您所能做的就是猜测名称(如您尝试使用
mget 20[12]*
)或使用其他方式(非FTP)获取名称。您还可以将已下载的文件(如果可能)移动到其他文件夹,然后重复下载。然后你可以把文件移回去。@MartinPrikryl谢谢你的回复。只是出于兴趣,为什么不谈这个话题?我看到了反对票,但我不知道为什么。你的问题(至少是你最初的问题)与编程无关。我部分同意。事实证明,编程是解决方案,但我感谢反馈。