LINUX.ORG.RU

wget сговнялся, почему?!

 ,


0

1

Всегда скачивал файлы таким обазом:

wget -t 0 -c http://privet.ru/isden.zip
и всё было прекрасно. Но с некоторой новой версии появилось 2 проблемы:

1) при пересоединении закачка замирает
т.е. проценты останавливаются, и закачка стоит, хотя соединение уже восстановилось

2) перестал работать Ctrl+C
жму, процесс типа завершается, и тут же снова запускается. приходится глядеть pid по
«ps -few | grep wget», а потом килять
«kill NNN» и заново запускать.

В итоге, юзаю uget.
Кто знает, что случилось со старым добрым wget?

★★★★★

Версию выясни, напиши багрепорт, прям как маленький. И далеко не факт что wget сговнялся, может быть в дистрибутиве накосячили.

Gary ★★★★★
()

Довольно часто пользуюсь wget на самых разных дистрах. Ничего подобного за ним не замечал. Версии 1.11.4, 1.12 и даже 1.14 — все работают замечательно.

Проверь алиасы — может быть у тебя на wget навешаны какие-то ненужные опции.
Еще проверь сам wget — бинарник ли это или шелл-скрипт какой-нибудь с ненужной лабудой. А то мало ли чего в дистрах навыдумывают.

blexey ★★★★★
()

Только что проверил. Не воспроизводится. GNU Wget 1.14

doraneko
()
Ответ на: комментарий от Gary

Моя версия:

wget --version
GNU Wget 1.13.4 для linux-gnu.

+digest +https +ipv6 +iri +large-file +nls +ntlm +opie +ssl/openssl 

Wgetrc: 
    /etc/wgetrc (система)
Локаль: /usr/share/locale 
Компиляция: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/etc/wgetrc" 
    -DLOCALEDIR="/usr/share/locale" -I. -I../../src -I../lib 
    -I../../lib -D_FORTIFY_SOURCE=2 -Iyes/include -g -O2 
    -fstack-protector --param=ssp-buffer-size=4 -Wformat 
    -Wformat-security -Werror=format-security -DNO_SSLv2 
    -D_FILE_OFFSET_BITS=64 -g -Wall 
Ссылка: gcc -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat 
    -Wformat-security -Werror=format-security -DNO_SSLv2 
    -D_FILE_OFFSET_BITS=64 -g -Wall -Wl,-Bsymbolic-functions 
    -Wl,-z,relro -Lyes/lib -lssl -lcrypto -lz -ldl -lz -lidn -lrt 
    ftp-opie.o openssl.o http-ntlm.o ../lib/libgnu.a 

Дистрибутив:

cat /etc/issue
Ubuntu 12.04.1 LTS \n \l

uname -a
Linux moon 3.2.0-30-generic #48-Ubuntu SMP Fri Aug 24 16:54:40 UTC 2012 i686 i686 i386 GNU/Linux

Гуглировал. Баг репорт уже написан, но все равно печально.

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

Еще проверь сам wget — бинарник ли это или шелл-скрипт какой-нибудь с ненужной лабудой.

Проверил. Бинарник размером 370348 байт.

Алиасы минимальны:

alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'

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

Поставил axel и pwget - при случае пробую (щас пока uget качает).

Novator ★★★★★
() автор топика
~# wget --version
GNU Wget 1.14 для linux-gnu.

+digest +https +ipv6 -iri +large-file +nls +ntlm +opie +ssl/openssl 

Wgetrc: 
    /etc/wgetrc (система)
Локаль: /usr/share/locale 
Компиляция: gcc -DHAVE_CONFIG_H -DSYSTEM_WGETRC="/etc/wgetrc" 
    -DLOCALEDIR="/usr/share/locale" -I. -I../lib -I../lib -march=x86-64 
    -mtune=generic -O2 -pipe -fstack-protector 
    --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2

УМВР по обоим пунктам.

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

axel мне не понравился:
1) он создает статусный файл закачки .st
2) если закачка была начата не им, он не может продолжить дополнять файл без своего «статусника», и создает новый файл и новую закачку с нуля.

uget тоже убогий:
1) он как и axel ведет своё состояние скачивания, если ему подложить более полный файл, то он игнорит скачанное и перетирает его, скачивая заново по состоянию, к-е он лично когда-то запомнил
2) «лимит повторов» программно ограничен 99, если разорвалось и соединилось 100 раз, то закачка встает.

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

Второй пункт обвинения снимаю, похоже, это проблема не wget'а, а моей системы (еще не понял кто виновник) - любой процесс, запущенный из командной строки (увидел также на примере axel), отделяется от терминала и работает вне его процесса.

Первый пункт («заморозка» при переподключении) остается.

Novator ★★★★★
() автор топика

1) при пересоединении закачка замирает т.е. проценты останавливаются, и закачка стоит, хотя соединение уже восстановилось

Возможно соединение установилось, а потом сразу упало. Установка явного таймаута ("-T 15") должна помочь.

Deleted
()
Ответ на: комментарий от Novator

Есть aria2. И кроме http/ftp он ещё и торренты умеет.

Deleted
()

УМВР, 1.13.4

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

Я уже вычитал в мане, что проблема зависания закачки в длинном тайм-ауте на чтение --read-timeout=900 (900 сек=15 мин!!). Действительно, когда разом уменьшил все три таймаута (опцией -T), зависание прекратилось.

Но возникла новая трабла. Если соединение к моменту выхода таймаута еще не установилось, то wget вываливается с ошибкой:

Преобразование адреса downloads.sourceforge.net (downloads.sourceforge.net)... ошибка: Временный сбой в разрешении имен.
wget: не удаётся разрешить адрес

Нарыл в мане опцию "--retry-connrefused=on", которя типа должна продолжать, даже если сервер недоступен, но она не срабатывает, если соединение разорвано на момент проверки, и dns не отрезолвило.

В итоге пришлось делать костыль-скрипт, который пытается качать, даже если началась атомная война:

wget_monster.sh

#!/bin/sh

Link="http://downloads.sourceforge.net/project/rebeccablackos/RebeccaBlackLinux%20%288-24-2012%29.iso?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Frebeccablackos%2F&ts=1351236962&use_mirror=citylan"
Path="/mnt/data/Distr/Linux/iso/"

Res=1
Try=0
while [ $Res != 0 ]; do
  Try=$(($Try+1))
  echo "Попытка: "$Try
  wget -t 0 -c -T 15 --retry-connrefused=on -P $Path $Link
  #wget -t 0 -c -T 15 $Link
  Res=$?
  echo "Res="$Res
  sleep 5
done

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

если закачка была начата не им, он не может продолжить дополнять файл без своего «статусника», и создает новый файл и новую закачку с нуля.

И в чем проблема сразу качать axel-ем?

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

Я почти всегда начинаю качать браузером (FF), когда вижу что он не справляется, перекладываю закачку на wget.

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

Я почти всегда начинаю качать браузером (FF), когда вижу что он не справляется, перекладываю закачку на wget.

Плагин Flashgot для FF + какая-нибудь консольная качалка ( у меня это aria2, да она создает свой файл-статус). Мне удобно.

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