我需要从FTP服务器下载所有文件,但服务器对10,000的查找限制使事情复杂化。
我不能使用 wget -m ftp://username:password@server-adress
,因为它只会下载前 10,000 个文件。我可以使用mget 20[12]*
、mget 20[34]*
等mget
,但这很麻烦,有些下载失败而我不知道是哪些下载。
现在我遇到了lftp
.我对这个命令抱有希望
mirror --use-pget=10 --only-missing --no-symlinks
但它不会下载任何东西,它只是输出
To be removed: 0 directories, 70695 files, 0 symlinks
现在我不知道如何实际从FTP服务器下载所有文件
,并受到限制编辑
现在,我继续创建了一个脚本,该脚本生成一个missing.txt
,其中包含我仍然需要下载的文件列表。如何使用该文件逐个下载文件?该列表n
分隔。
所以我继续制作了一个脚本,其中包含所有丢失的文件,称为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
的问题.