Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Консольный менеджер закачек с веб-интерфейсом  (Прочитано 4642 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн diversia

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
Люди добрые, подскажите, есть ли решение для организации закачек через браузер (веб-интерфейс).
Стоит ubuntu server, хочется иногда покачать файлы (списком). Что-то вроде rtgui, только для протокола http/ftp.

Оффлайн censor

  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
ssh + wget не устроят?

Оффлайн diversia

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
ssh + wget не устроят?
А если список закачек? Дело в этом.

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
wget -c -t8 -w5 -i load.txt

Где, -с, это докачивать, или пропустить если файл уже существует;
-t, это количество попыток при обрыве закачки;
-w, это время ожидания при переходе от закачки к закачке;
-i, это загрузить список закачек из файла load.txt.
В файле одна строка - это одна закачка. Файл находиться в текущем каталоге, или указать путь. Качает в текущий каталог.

Это, если качать файлы, для зеркалирования сайтов немного другие параметры (man wget).
Сделать bash скрипт, проверяющий дату модификации файла load.txt, если обновился - перезапустить wget. На веб интерфейсе сделать форму, для ввода списка закачек, которая сохранит список в файл (или добавит).

Правильно понял вопрос?

Оффлайн diversia

  • Автор темы
  • Любитель
  • *
  • Сообщений: 50
    • Просмотр профиля
Molibden, спасибо!

еще такой вопрос: если к примеру законектиться к компу через ssh, затем поставить на закачку и выполнить выход, команда wget не прервет выполнения заданных задач?

Пользователь решил продолжить мысль 18 Июня 2010, 09:44:02:
и как посмотреть статусы закачек, т.е. скачался или нет, возможно процент...?
« Последнее редактирование: 18 Июня 2010, 09:44:02 от diversia »

Оффлайн dieselist

  • Активист
  • *
  • Сообщений: 525
    • Просмотр профиля
    • diesel.pp.ua
еще такой вопрос: если к примеру законектиться к компу через ssh, затем поставить на закачку и выполнить выход, команда wget не прервет выполнения заданных задач?

Прервет :) Для того чтоб не прервала надо делать что-то вроде nohup, или запускать закачку в screen

и как посмотреть статусы закачек, т.е. скачался или нет, возможно процент...?

Логируй вывод wget, он подробненько пишет обо всем, что тебя интересует.
Ubuntu, Gentoo, RHEL, AIX

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
wget -c -t8 -w5 -i load.txt-o /home/user/wget.log &

Где, -o wget.log, это писать вывод wget в файл wget.log (имя любое, хоть my_download.html). Пишем эту опцию в самом конце команды.
& Запускать команду в фоновом режиме - выдаст, что-то типа [1] 17219, где 17219 - pid процесса, по нему можно wget и прибить командой kill 17219.
Есть у wget еще параметр -nv, это выводить лог не в виде: (вид вывода настраивается вроде, man wget)
(Нажмите, чтобы показать/скрыть)
А как-то так: wget  -nv ya.ru
2010-06-18 10:01:33 URL:http://ya.ru/ [6071/6071] -> "index.html" [1]
Т.е. сообщает только сам факт загрузки, без вывода процесса скачивания. Процент тут не покажет.

Пишем путь ведения лога куданить в директорию веб сервера, на всякий случай заранее файл создаем, и открываем его прямо в браузере, что-то типа http://127.0.0.1/wget.log.

Вроде все, еще раз прошу, diversia, прокури man wget, там очень много полезного.  :)

ЗЫ. Пока писал ответ dieselist, уже частично ответил.
Если запускать wget бекграундом, типа как описал выше, естественно, что при выходе из ssh закачка продолжается.  :coolsmiley:
« Последнее редактирование: 18 Июня 2010, 12:05:41 от Molibden »

Оффлайн lordmuzer

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
часто у меня получается такая проблема с wget в пакетном режиме:

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

вопроса да:
1. почему вообще wget не может нормально обработать такое имя. chrome в этой же системе качает нормально, и файлы называются правильно.
2. как научить wget в пакетном режиме исправлять имена файлов ? например заменять недопустимые символы знаком '_'

пример такой ссылки http://www.ex.ua/load/2769374

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
Практически аналогичный вопрос (и вроде ответ) про русские имена файлов.
http://mydebianblog.blogspot.com/2007/09/wget.html#comment-4171445259178918419

Честно говоря, мну никогда не сталкивался с такой проблемой, а пробовать патчить исходники и компилить сейчас нет желания.
Если получиться, буду рад.  :)

Можно веселее поступить, создать bash скрипт, типа: в цикле, выполнить команду для скачивания (wget .....) для каждой строки списка закачек, используя опцию -О, причем перед передачей строки на wget заменить русские символы в имени файла на соответсвующие символы латиницы, для передачи параметру -О.
Типа строку: http://ru.wikipedia.org/wiki/Подснежник_королевы_Ольги заменить на  /home/.../Podsnegniki_korolevi_Olgi, передать адрес в качестве источника для скачивания, а то, что получилось при замене - в качестве параметра -О

Я сам понял, что написал.  :D Если сильно нужно, могу набросать скрипт для 2го способа, хоть это и извращение.

Оффлайн lordmuzer

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
почему ... я сам про скрипт чего то не подумал. а он может параллельно решить еще кучу задач ...

я пока для себя его так представлю.

в качестве одного параметра передает или локальный файл со списком или url файла. если надо скрипт его скачивает.
второй необязательный параметр - путь куда скачать. если не указано то в текущий каталог

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

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

только вот одно непонятно, как для ссылок вида http://www.ex.ua/load/2769374 получить вменяемое имя файл ? наверно никак (
может есть идеи ?

ЗЫ: хотя наверно я поспешил так шуметь по поводу имен файлов. может там и есть какие то проблемы, но парамерт --restrict-file-names=nocontrol для скачки файлов спасает идеально. хотя наверно может вызывать проблемы при скачивании сайтов целиком, но мне оно и не нужно )
но сам скрипт мне все же интересен. как читать с файла урл для wget и удалять их только если тот вернул успех ?
« Последнее редактирование: 18 Июня 2010, 14:42:15 от lordmuzer »

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
2 lordmuzer
Скрипт гонял в разных режимах на закачку англ. файлов, в т.ч. и с несуществующих адресов.
Из багов: нельзя во время работы скрипта добавлять строки в файл с закачками.
(Нажмите, чтобы показать/скрыть)

Осталось только совместить пожелания diversii, т.е. веб-интерфейс приделать, и запуск из крона, с проверкой, не запущен ли в момент запуска из крона этот скрипт, и если не запущен, то добавить список закачек (мну это слово уже примелькалось, не знаю, чем адекватно заменить) сохраненных веб-интерфейсом в файл закачек для выложенного в спойлере скрипта.  :D

(Нажмите, чтобы показать/скрыть)

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
часто у меня получается такая проблема с wget в пакетном режиме:
почему то для ссылок, которые ведут на файлы с русскими именами, wget коверкает это имя до безобразия и иногда просто не может его сохранить в фс.

content-disposition = 1
Пробовали?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28402
    • Просмотр профиля
часто у меня получается такая проблема с wget в пакетном режиме:
почему то для ссылок, которые ведут на файлы с русскими именами, wget коверкает это имя до безобразия и иногда просто не может его сохранить в фс.

Файл в UTF8 сохранён?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн lordmuzer

  • Любитель
  • *
  • Сообщений: 68
    • Просмотр профиля
насчет утф я уже писал )
просто недочиниал мануал нормально.

--restrict-file-names=nocontrol позволяет нормально сохранять файлы с утф именами на ext3 & ntfs разделы.

Molibden
за скрипт спасибо, буду изучать

Оффлайн danila77

  • Участник
  • *
  • Сообщений: 131
    • Просмотр профиля
А использовать FatRat никак нельзя что ли ? Нормальный веб интерфейс . Также можно запустить как демона без ГУИ .
И пускай качает на здоровье .

 

Страница сгенерирована за 0.072 секунд. Запросов: 23.