LINUX.ORG.RU

Какой памяти не хватает wget?

 


0

4

Доброго времени суток всем!
Скачиваю через консольный сервер с помощью wget файлы по http. На файле размером 3.7 Гб wget загибается и выдает «wget: недостаточно памяти». Точнее, он выкачивает его полностью до 100% (судя по логам), зависнет на пару секунд, а потом умирает.

$ df -h
/dev/vda2          124G          35G   84G           30% /
---
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           2,0G         99M         78M        1,4M        1,8G        1,7G
Swap:          1,0G        100M        923M
В чем загвоздка?

Ответ на: комментарий от targitaj

Это интрасеть, так что ссылку дать не могу.

speed_vm
() автор топика
Ответ на: комментарий от speed_vm

Странно тогда. Ну помониторь загрузку памяти в процессе, попробуй strace. Но если интерес не чисто академический, то используй curl вместо wget.

anonymous
()

Глюки wget, возможно. Попробуй заюзать curl.

EXL ★★★★★
()
Ответ на: комментарий от speed_vm

попробуй wget с --verbose, может расскажет поподробнее

anonymous
()

В данный момент загрузка файла прошла. Запускал загрузку руками через консоль, т.е. «wget http://...".
Нужно, чтобы работало в скрипте. К сожалению, мне урезают канал в интрасети и загрузка занимает более часа. Попробую запустить загрузку через скрипт.

speed_vm
() автор топика

ВОобще по памяти wget весьма корявый

Может есть ризон задействовать aria2c – он сразу деофлтом память выделяет на диске и туда пихает. Да вообще как-то по адекватнее на больших файлах

fornlr ★★★★★
()
Ответ на: комментарий от fornlr

Опишу подробнее цепочку запуска.
Я запускаю скрипт с wget через таймер systemd. Когда wget выкачивает 99% большого файла (3.7 Гб), он начинает дико отжирать оперативу (её 2 Гб). Отожрав всё, что есть, падает и орёт «wget: недостаточно памяти».
Причем, если в скрипте указывать именно загрузку этого файла, т.е.:

wget http://../.../file
То файл загружается. Мне же нужно скопировать все файлы, поэтому я пишу так:
wget \
	--mirror -R "index.html*" \
	-P /mnt/mirror/ \
	--append-output=$FileLog \
	http://10.3.128.249/
Файлы постоянно меняются, перемещаются, удаляются и т.п., поэтому я не могу принудительно указывать путь к этим файлам.
Как победить?

speed_vm
() автор топика
Ответ на: комментарий от crutch_master

Извиняюсь за ламерский вопрос. Я вообще wget правильно использую? Т.е. изначально нужно сделать зеркало хранилища файлов, доступное только по http. Может быть нужно использовать другие инструменты или как-то по-другому использовать wget?

speed_vm
() автор топика
Ответ на: комментарий от speed_vm

Был уверен что даст, но нет. А работает он по ssh, своему протоколу и по файловой системе. Если есть доступ по ssh это лучший вариант, т.к. качает не все а только изменения.

einhander ★★★★★
()
Ответ на: комментарий от speed_vm

Если сервер отдаёт листинг, то попробуй lftp. У этой проги есть команда mirror с настройками на несколько потоков и синхронизацией.

Radjah ★★★★★
()
Ответ на: комментарий от anonymous

/var/log/wget.log
Если Вы на свободное место на разделе намекаете, то его предостаточно и в момент загрузки, и в момент падения.

speed_vm
() автор топика
Ответ на: комментарий от einhander

Для zsync нужно специально готовить хранилище, добавляя метафайлы. Мне же доступно только скачивание по http.

speed_vm
() автор топика
Ответ на: комментарий от speed_vm

Понятно, спасибо за информацию, zsync особо не юзал. Тогда curl вполне себе замена wget.

einhander ★★★★★
()
Ответ на: комментарий от IPR

Создал с нуля две машины: виртуалку (2 Гб, 2 ядра, 50 Гб под корень) и lxc с теми же параметрами. ВМ - та же ошибка, однако, на lxc загрузка проходит без ошибок.
Почему? Может на пользователя какие ограничения есть?

speed_vm
() автор топика
Ответ на: комментарий от speed_vm

Ну или tmpfs где-то всё же используется (системда намекает), или надо валить с wget на curl.

Deleted
()

Для успешной загрузки больших файлов с помощью wget с параметром "--mirror" требуется swap объемом больше загружаемого файла. Проверено эмпирически.
Было дано:
Гипервизор Proxmox 5.1;
Виртуальная машина (2 Гб RAM, 40 Гб под корень, от 2 до 10 Гб под swap);
Debian Stretch 9.8;
wget 1.18.
Для lxc без swap с теми же параметрами wget загружает файлы без ошибок.

speed_vm
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.