Ошибка таймаута aria2c для большого файла, но загружает большую его часть

Я разместил это на superuser вчера, но, может быть, здесь лучше. Я прошу прощения, если я ошибаюсь.

Я стараюсь изо всех сил стрелять ниже aria2c команда запуска с использованием ubuntu 14.04, В основном загрузка начинается и заканчивается примерно через 30 минут, затем появляются ошибки с ошибкой тайм-аута. Загружаемый файл имеет размер 25 ГБ, и часто несколько файлов загружаются с использованием цикла. Любые предложения, чтобы сделать это более эффективным и стабильным? В настоящее время загрузка каждого файла занимает около 4 часов, и это нормально, если нет ошибок. Я получаю aria2c файл с частично загруженным файлом. Спасибо:).

aria2c -x 4 -l log.txt -c -d /home/cmccabe/Desktop/download --http-user "xxxxx"  --http-passwd xxxx xxx://www.example.com/x/x/xxx/"file"

Я извиняюсь за тег, так как не могу создать новый, который был ближайшим.

1 ответ

Решение

Вы можете написать цикл для повторного запуска aria2c, пока все файлы не будут загружены (см. Эту суть).

В принципе, вы можете поместить все ссылки в файл (например, list.txt):

http://foo/file1
http://foo/file2
...

Тогда беги loop_aria2.sh:

#!/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

aria2c -j5 -i list.txt -c --save-session out.txt будет загружать 5 файлов параллельно (-j5) и записывает сбойные файлы в out.txt, Если out.txt не пусто ($has_error -gt 0), затем повторите команду, чтобы продолжить загрузку. -c опция aria2c пропустит завершенные файлы.

PS: еще одно более простое решение (без проверки ошибок), которое просто запускает aria2 1000 раз, если не возражаете:)

seq 1000 | parallel -j1 aria2c -i list.txt -c 
Другие вопросы по тегам