Я пытаюсь загрузить Criteo Terabyte Click Logs (с https://labs.criteo.com/2013/12/download-terabyte-click-logs-2/) на удаленный сервер.
Я раньше не использовал curl
, поэтому написал оболочку Скрипт для загрузки всех 24 файлов в фоновом режиме. Вот как выглядит мой сценарий оболочки:
#!/bin/bash
cd /dir/to/download/
for a in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
do
nohup wget http://azuremlsampleexperiments.blob.core.windows.net/criteo/day_$a.gz > day_$a.out &
done
Но загрузки (которые должны были закончиться в течение 24 часов, так как его скорость загрузки минимум 200 КБ / с заняло бы около 80 КБ, чтобы загрузить 16 ГБ данных на файл, и 24 часа (86,4 тыс. Секунд) заняли несколько дней, и я обнаружил, что wget
постоянно получает сброс соединения или тайм-аут. Вот что я обычно вижу:
Либо
2020-01-30 10:41:52 (213 KB/s) - Read error at byte 589119712/16309554343 (Connection timed out). Retrying.
или
2020-01-30 13:38:03 (377 KB/s) - Read error at byte 2690156144/16683852232 (Connection reset by peer). Retrying.
Насколько мне известно, это, вероятно, проблема в TCP, но, честно говоря, я не слишком много знаю о wget
или компьютерных сетях, чтобы действительно решить эту проблему.
Какие есть предложения, чтобы загрузка данных не прекращалась в середине? Любая помощь или pu sh в правильном направлении будет принята с благодарностью!