运行 同时执行多个 Wget 命令
Run multiple Wget commands simultaneously
我有一个文本文件,每行都有一个 url 和所需的文件名(由 space 分隔)。我正在遍历此文本文件并下载 url 并使用 wget:
将其保存为所需的名称
while IFS=' ' read a b
do wget $a -O $b
done < list.txt
问题是我的列表包含将近 9000 个文件,因此一个一个地下载它们需要很长时间。无论如何我可以同时下载它们吗?
试试:
while IFS=' ' read a b; do
wget $a -O $b &
done < list.txt
# Wait for background jobs to terminate...
wait
PS: 请记住,9000 个并发连接可能不会被服务器处理,因此我建议您以块为单位限制连接数。
您可以这样做:
number=10
while IFS=' ' read a b; do
if test $(jobs | grep Running | wc -l) -ge $number; then
sleep 1
else
echo "Starting $a..."
wget $a -O $b &
fi
done < list.txt
wait
我有一个文本文件,每行都有一个 url 和所需的文件名(由 space 分隔)。我正在遍历此文本文件并下载 url 并使用 wget:
将其保存为所需的名称while IFS=' ' read a b
do wget $a -O $b
done < list.txt
问题是我的列表包含将近 9000 个文件,因此一个一个地下载它们需要很长时间。无论如何我可以同时下载它们吗?
试试:
while IFS=' ' read a b; do
wget $a -O $b &
done < list.txt
# Wait for background jobs to terminate...
wait
PS: 请记住,9000 个并发连接可能不会被服务器处理,因此我建议您以块为单位限制连接数。
您可以这样做:
number=10
while IFS=' ' read a b; do
if test $(jobs | grep Running | wc -l) -ge $number; then
sleep 1
else
echo "Starting $a..."
wget $a -O $b &
fi
done < list.txt
wait