我需要从FTP服务器下载所有文件,但是该服务器的查询限制为10,000,这使事情变得复杂了。
我不能使用wget -m ftp://username:password@server-adress
,因为它只会下载前10,000个文件。我可以使用mget
,mget 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
分隔。
答案 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
。