2

aria2c用来下载以文本文件形式组织的相当大的 url 列表(~6000)。

基于这个要点,我正在使用以下脚本下载所有文件:

#!/bin/bash
aria2c -j5 -i list.txt -c --save-session out.txt
has_error=`wc -l < out.txt`

while [ $has_error -gt 0 ]
do
  echo "still has $has_error errors, rerun aria2 to download ..."
  aria2c -j5 -i list.txt -c --save-session out.txt
  has_error=`wc -l < out.txt`
  sleep 10
done

### PS: one line solution, just loop 1000 times
###         seq 1000 | parallel -j1 aria2c -i list.txt -c

它将所有aria2c输出保存在一个文本文件中,并且在至少出现一个下载错误的情况下,尝试再次下载所有 url。

问题是:由于我的 url 列表太大,这变得非常低效。如果 30 个文件导致下载错误(例如,由于服务器超时),则整个列表将再次循环 30 次。

所以,问题是:有没有办法告诉aria2c只保存失败的下载,然后尝试只重新下载那些文件?

4

0 回答 0