Xargs и Wget перестают работать через час


8

Запуск сценария с Cygwin на Windows XP с двухъядерным процессором и 4 ГБ оперативной памяти

cat url_list.txt | xargs -P50 wget -i

Я пытаюсь трал через 4 Гб в URL для скачивания (около 43 миллионов)

Работает нормально примерно в течение первого часа, затем оболочка Bash и загрузка останавливаются, хотя ее всего 2% в списке URL.

Есть идеи, что может быть не так?

Каков наилучший способ отладки, почему это прекращается через час?

Ответы:


2

Возможно, wget требует времени для загрузки некоторых файлов. Есть ли какие-либо процессы wget / xargs в памяти в течение периода, когда он кажется зависшим? Если да, то это полные 50 процессов, которые вы выделили с помощью флага -P50 для xargs, или он каким-то образом заполз на это число или меньше этого числа, и новые экземпляры не создаются должным образом? Хотя он запускается под Cygwin, взгляните на список процессов в самих окнах, поскольку каждая загрузка wget должна запускать экземпляр в диспетчере задач.


0

Я предполагаю, что URL-адреса для разных сайтов. В этом случае вы можете попасть на сайты, которые медленно отвечают и на которых будет висеть один из ваших виджетов. Поскольку у вас 50 запущенных, вам нужно будет попасть на 50 из этих сайтов, прежде чем ничего не произойдет.

Чтобы увидеть, так ли это, попробуйте убить один из висячих виджетов и посмотреть, отклеится ли тот.

Чтобы пропустить зависшие URL-адреса, вы можете задать wget тайм-аут:

wget -T 60
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.