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

时间:2019-04-04 07:26:49

标签: ftp wget ftp-client lftp

我需要从FTP服务器下载所有文件,但是该服务器的查询限制为10,000,这使事情变得复杂了。

我不能使用wget -m ftp://username:password@server-adress,因为它只会下载前10,000个文件。我可以使用mgetmget 20[12]*之类的mget 20[34]*,但是它很麻烦,并且某些下载失败而我不知道是哪个。

现在我遇到了lftp。我对这个命令充满了希望

mirror --use-pget=10 --only-missing --no-symlinks

但是它没有下载任何东西,只是输出

To be removed: 0 directories, 70695 files, 0 symlinks

现在我不知道如何从FTP服务器上实际下载所有文件了

编辑

现在,我继续创建了一个脚本,该脚本生成了一个missing.txt,其中包含仍需要下载的文件列表。如何使用该文件一个接一个地下载文件?列表以\n分隔。

1 个答案:

答案 0 :(得分:0)

因此,我继续制作了一个名为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

然后只需运行./download.sh