[linux] загрузка файлов по smb
VVDCopy (c)
Ты это к чему?
[chep01 Downloader3]$ head -3 Makefile
#change
SAMBADIR = /usr
[chep01 Downloader3]$ ls -l /usr/include/libsmbclient.h
-rw-r--r-- 1 root root 79774 Sep 13 23:03 /usr/include/libsmbclient.h
[chep01 Downloader3]$ ls -l /usr/lib/libsmbclient.a
-rw-r--r-- 1 root root 1986642 Sep 13 23:05 /usr/lib/libsmbclient.a
[chep01 Downloader3]$ make
make: *** No rule to make target `/usr/progs/Samba/include/libsmbclient.h', needed by `slave.o'. Stop.
по причине того, что неправильно прописаны зависимости для файла .dep. Который, кстати, ни к чему было включать в дистрибутив.
даже в самбу кажется включено.
libsmbclient - крайне кривая штука...
они там в четвёртой самбе прогнозируют сделать нормальную клиентскую либу.
libsmbclient - крайне кривая штука...
Это точно. В Gnome-2 встроена его поддержка, когда начинаешь чего-нить копировать, результат практически непредсказуем
В твоем случае сделай make deps. Забыл про это написать.
А smbget умеет докачивать? Многопоточность? Восстановление после сбоев?
В моей проге - он вполне предсказуем. Рано или поздно, но файл докачается. Разве что владелец его удалит или зашарит навсегда
Увы, мне твоя прога не подходит. Ибо уже давно проще набрать mount_smbfs. К тому же ничего не могу поделать со своей привычкой перетаскивать файлы мышкой.
Это хорошо. А если тебя отрубят посреди закачки?
Хотя была пара случаев, когда мне реально могла бы пригодиться твоя прога.
Да, графический клиент(для KDE) в стадии разработки.
Ну не знаю. С dd - Я как щас себе это представил В общем я думаю что прога ОЧЕНЬ полезна. Особенно когда я 3 дня не мог скачать фильм из-за отрубов.
Кстати, графический stand-alone менеджер файлов кто-нить знает нормальный? Чтоб из него можно было файлы перетаскивать в плейлист того же xmms.
Тогда тебе остаётся MC - он может дописывать файл.
Может rox-filler тебе поможет? (название точно не помню)
Так он на libkde или на QT? Если просто на QT - тогда намано Главное - чтоб файлы можно было перетаскивать
Не замечал. А если тебе надо кучу файлов скачать? Я вот поставил - и забыл. А тебе придется следить, восстанавливать если что... Тем более smbfs на мой взгляд весьма глючная.
rox-filler? на gtk.
smbfs глючная - не то слово но больше ничего нету, да и libsmbclient ненамного лучше
Да не rox-как-его-там, а твоя скачивалка
Теперь есть моя прога. Графический интерфейс - со временем точно будет. Cейча мне более важна стабильность закачки.
Будет на libkde. В принципе можно QT only, но мне нужен dcop для возможности общения с konqueror.
Находил, правда, ещё один, самостоятельный. Только он у меня вылетал с дампом часто, походу комп мой потихонечку загибается.
Хммм... Такой древний комп? Тебе нужны Х, xterm и моя прога Без GUI.
Что меня убивает в Гноме и КДЕ - так это требования к оперативной памяти. Покуда не сделал 256+512, нормально работать не захотело
настоящие фанаты делают mount smbfs, потом расшаривают это дело у себе на ftp и закачивают
vvdcopy программа с аналогичной функциональностью. Написана несколько лет назад. Те, кто давно учится в МГУ имели счастье быть знакомы с отцом VVD, её автором.
я так понял, оно не умело smb, только если смонтировать, т.е. фтопку сразу
vvdcopy программа с аналогичной функциональностью.
Это не то ключевое свойство, благодаря которому она вошла в историю
Я УМЕЮ пользоваться этими инструментами. И уже довольно давно. Но В ДАННОМ СЛУЧАЕ я этого не сделал. по многим причинам которые даже не собираюсь обсуждать.Чёрт возьми, из всех юзеров на форуме ты лучше всех подходишь к собственному аватару!
Я вот кстати всегда так делал и не парился по этому поводу.
и устройство ядер фрюниксов плохо приспособлено для сменных носителей и сетевых файловых систем
сетевых файловых систем
NFS?
не зря ж это называют Network Failure System
Я бы сказал что у унихов с мелкософтом совместимость плохая.
Я знаю. Именно поэтому его и выбрал.
Ну и не парься дальше. Зачем что-то монтировать для того чтобы скачать? Это как удалять гланды через задний проход.
Взять можно тут: smb://braindead.hackers/...
ключевое слово...
лично меня скорость 2-5 мегов по самбе и до 9-10 по фтп вполне устраивает, для того, чтобы качать через smbclient и ncftp не боясь обрыва
хотя с другой стороны и хорошо, что такая сеть как хакерсы, выращивает вот таких вот Кулибиных
неудобен smbclient ...
PS: а если комп с которого ты качаешь тебя отрубит? Что ты будешь делать? Я вот 3 дня не мог скачать кино. Постоянно отрубали. В общем-то я после этого и написал downloader.
Да. Кто-то заплатил кучу денег. А кто-то применил немножко мозгов и прямых рук. Каждому - свое.маза, или тебя жестоко наебали, или одно из двух
В чем наебали? Подключиться к хакерсам - практически бесплатно. Да, посмотри еще PS в предыдущем посту
по-моему, было бы гораздо полезнее встроить это дело в конквир, а не в виде отдельной утилиты. Поскольку встроенный smb:// - это просто пиздец...
Я об этом подумываю. Но специфика моего решения - его довольно сложно встроить в другое приложение. Для надежности программа разбита на 4 реальных программы. И каждая следит друг за другом. Чтобы избежать зависания. Поэтому оформить это как либу - не пройдет(ну или не стоит затрат). Я скорее всего сделаю отдельное приложение, и добавлю в меню konqueror пару пунктов(типа скачать с...). А smb:// - это точно пиздец. Зависает при любом удобном случае. Но это больше ошибка libsmbclient - таймауты там ни к черту. Вообще не работают.
я пользуюсь этим.
кстати, очень грамотная вещь. что-то я раньше не подумал, что можно smbfs на autofs посадить.
PS: а как же дозакачка?
Я УМЕЮ пользоваться этими инструментами. И уже довольно давно. Но В ДАННОМ СЛУЧАЕ я этого не сделал. по многим причинам которые даже не собираюсь обсуждать.
Ну хорошо, хорошо, умеешь, только Makefile-то правильно написать можно было?
Можно. Забыл Ты лучше скажи, ты попользовался? Отзывы? Пожелания? Фичиреквесты?
А под винду я такую приблуду еще раньше "папы VVD" написал в свое время...
А чем тебя эта сточка позабавила?
Просто интересно, чем так модно делать /usr/progs в который каждую программу ставить индивидуально. Ну кроме того, что получается $PATH охуенных размеров.
Например chroot.
chroot /usr/progs?
chroot /usr/progs/Samba?
Второй вариант.
Еще ssh, apache...
Неубедительно как-то все, ну да ладно...
Насчет зависаний. Я samba есть несколько зашитых таймаутов с совершенно дикими значениями типа 20 секунд. Я перекомпилил ее, поменяв таймаут на 2 секунды. В результате она у меня или качает, или сразу отваливается без подвисаний - я доволен. Править source/libsmb/clientgen.c, строчку cli->timeout = 20000.
Но на это уходит намного меньше времени, чем у тебя сейчас уходит на написание программы.
да не в скорости делоЧем?
неудобен smbclient ...
Для надежности программа разбита на 4 реальных программы. И каждая следит друг за другом. Чтобы избежать зависания.ROTFL!
Это напоминает моё предыдущее место работы. Там все проблемы решались именно таким путём. Если программа раз в неделю виснет, то вместо анализа проблемы писался watchdog, который эту программу перезапускал, если от неё не приходит сообщений. Впрочем с watchdogом тоже была проблема, он не всегда успешно выходил по SIGTERM и иногда последующая инвокация watchdоg не могла сделать bind. Для борьбы с этой проблемой был написан еще один скрипт. Важно то, что перед начальством этот подход выставлялся именно как надежность. Кстати люди, внедрявшие эту методологию очень любили Linux, как и ты. К чему бы это?
Как это зачем? Чтобы отжирать канал. Например поставил человек ограничение 100кб - и сидят там 5 человек. И качаешь ты со скоростью 20кб. А я подключусь на 20 каналов и отожру все 100кбПрокатит только с теми, кто ставит ограничения по TCP сессиям, а не по IP клиентов.
> если от неё не приходит сообщений.
Твоя ошибка в том, что ты противопоставляешь эти методы, хотя они не являются взаимно противоречивыми и могут совмещаться.
То, что на твоей работе умели пользоваться только одним из них --- исключительно ваши трудности.
> Чем?
если забыть про баги, коих немало, то
* нет даже истории и автодополнения (по крайней мере в той версии, что у меня)
* нет автоматической докачки, о чём собственно и тема
Твоя ошибка в том, что ты противопоставляешь эти методы, хотя они не являются взаимно противоречивыми и могут совмещаться.Пример достойного софта или качественного продукта где этот подход используется? Вот у тебя на phoenix к каждому демону (sshd, syslogd, etc...) прилагается программа которая за ним следит?
если рассмотреть системы более крупные, чем одна софтина, то такой подход используется повсеместно
например, в построении сетей
если типа "анализ проблемы" показывает, что исправить её сложнее, чем обойти, то интересы дела требуют её именно обойти
это если есть конкретная задача, а не желание что-то улучшить на будущее
Нет, мы всё таки рассмотрим одну программу.
> например, в построении сетей
Тут есть внешние факторы, которые мы не можем предотвратить. Температура для оборудования, влажность для медных проводов. Оборудование и провода, которые мы не можем улучшить. Поэтому ставятся перегружалки.
На разных уровнях абстракции одно и то же может рассматриваться как одна программа, либо как несколько.
Пример про феникс:
падает иногда в корку pptpd
но так как происходит это редко, а запускается он из inetd, то практической проблемы это не представляет
inetd - та самая подпорка
и я даже посмотрел, где и почему падает
это чистый null pointer dereference в случае какого-то редкого race condition
исправлять не стал, в силу отсутствия проблемы на практике
аналогично было ещё с freebsd, когда рулил ты, что-то там падало по signal 10
ты тогда сказал, что хуй знает что это, но типа у вас на виржине уже год так, и вроде ничего
а почему ничего? а потому что запускалась эта фигня из обвязки по имени pppoed
> inetd - та самая подпорка
То, что inetd сглаживает глюки глючных программ это его побочное свойство, он не ради этого придуман. А то, что это побочное свойство злостно эксплуатируют - ничего хорошего.
> аналогично было ещё с freebsd, когда рулил ты, что-то там падало по signal 10
> ты тогда сказал, что хуй знает что это, но типа у вас на виржине уже год так, и вроде ничего
Это был radiusd-cistron. При этом я занимался анализом проблемы, а не обвязкой. Несколько падений было пофикшено. Каждый раз, когда он падал в новом месте, то я ничего не мог сказать кроме "хуй знает". В конце концов cistron нас зоебал и мы от него отказались.
> а почему ничего? а потому что запускалась эта фигня из обвязки по имени pppoed
ppp тут не причём. Падал только radiusd.
значит, я говорил про другой случай
я вижу, у тебя очень удобная память, быстро забывает то, что не укладывается в теорию
> То, что inetd сглаживает глюки глючных программ это его побочное свойство, он не ради этого придуман.
Все практически используемые программы глючные.
Не согласен - приведи контрпример с доказательством неглючности.
> А то, что это побочное свойство злостно эксплуатируют - ничего хорошего.
Не вижу принципиальной разницы с изобретением уникальной подпорки.
Если существующая подпорка хорошо себя зарекомендовала, и можно ей воспользоваться, то не вижу ничего плохого в этом.
Тут у тебя были рассуждения про неподконтрольность некоторых факторов.
Глючность софта - именно такой неподконтрольный фактор, так как победить его в достаточных масштабах никто не может.
> ppp тут не причём. Падал только radiusd.Я вижу, ты фантазёр. Потому что на virgin сейчас ничего не падает. И ppp никогда не падало.
значит, я говорил про другой случай
я вижу, у тебя очень удобная память, быстро забывает то, что не укладывается в теорию
Все практически используемые программы глючные.Только после того, как ты докажешь что бога нет.
Не согласен - приведи контрпример с доказательством неглючности.
Если существующая подпорка хорошо себя зарекомендовала, и можно ей воспользоваться, то не вижу ничего плохого в этом.А если программа падает не из-за null pointer derefence, а из-за переполнения, то использование inetd спасает от падучести, но не от уязвимости.
Если программа оставляет после себя что-то мешающее следующей? Конечно, можно написать скрипт, который подчищает.
Если у тебя имя corefilа содержит pid, то у тебя через несколько недель (месяцев) неспешных падений закончится место на винте. Конечно, ты можешь написать скрипт, который коры удаляет.
Рано или поздно львиная доля рабочего времени будет уходить на то, что бы читать аутпуты неудачных кронджобов от этих самых скриптов, пытаться понять почему же скрипт-подчищатель не сработал, а также на написание новых роботов и вотчдогов n-ного уровня. Это я не придумал, а то что наблюдал на практике, когда 5 человек администрили 100 машин. Можешь привести мне пример, где такой подход работает на практике.
На этом стоит прекратить, так как других доказательств, кроме слов, ни у кого нет
> А если программа падает не из-за null pointer derefence, а из-за переполнения,
> то использование inetd спасает от падучести, но не от уязвимости.
именно руководствуясь этим, я и посмотрел, где оно падает и почему
ты опять настаиваешь на том, что нужно выбрать только один метод из возможных
> Рано или поздно львиная доля рабочего времени будет уходить на то, что бы читать аутпуты неудачных кронджобов от этих самых скриптов,
> пытаться понять почему же скрипт-подчищатель не сработал, а также на написание новых роботов и вотчдогов n-ного уровня.
Верю.
Так бывает, если решать все проблемы только одним способом, игнорируя более эффективные.
А вот если отказоустойчивость заложить в дизайн, то и не понадобится новых роботов.
Я же не призываю никогда не исправлять баги, только добавлять обёртки, это ты почему-то упорно пытаешься мне приписать такое.
Есть virgin на котором с тех пор сменилась версия FreeBSD, но не ppp, потому что лень мержить изменения с локальным патчсетом. И сменился radiusd, как я уже говорил. Но на ppp это не должно влиять.
Так бывает, если решать все проблемы только одним способом, игнорируя более эффективные.Хорошо, тогда давай критерий того, когда нужно разбираться, а когда делать подпорку.
А вот если отказоустойчивость заложить в дизайн, то и не понадобится новых роботов.
Я же не призываю никогда не исправлять баги, только добавлять обёртки, это ты почему-то упорно пытаешься мне приписать такое.
ну всякое бывает
я не говорил, что именно ppp
но точно какая-то хрень, которая из в результате коннекта по pppoe запускается
на фениксе оно так и проработало до самого апгрейда...
> Хорошо, тогда давай критерий того, когда нужно разбираться, а когда делать подпорку.
Надо делать то, что представляется наиболее эффективным продвижением по выбранному пути.
Это типа если универсальный критерий.
PS: хоть кто-нибудь пользовался downloader? Отзывы? Пожелания? Фичиреквесты?
У меня нет удобной скачивалки, так что ломает смотреть.
ага. radiusd-cistron.
Надо делать то, что представляется наиболее эффективным продвижением по выбранному пути.Что значит эффективным? С точки зрения компа эффективнее починить - не будут тратиться ресурсы на запуск и работу костыля. С точки зрения человека эффективнее поставить костыль - не будет тратиться время на анализ проблемы.
Это типа если универсальный критерий.
Понимаешь ли, я писал эту программу не с нуля. Я пользовался готовыми библиотеками(libsmbclient). И за ИХ глюки я не отвечаю. Поэтому я учитываю возможность что моя программа подвиснет именно не в моей библиотеке. Именно для этого и написан watchdog.А еще два зачем?
Кстати лучше потратить время на написание патча и баг репорта самбистам. Принесешь человечеству пользу.
Как ты указал, иногда экономия получается кажущаяся.
PS: может оно и лучше. Но дольше. А мне просто хотелось иметь работающую програму.
> Как ты указал, иногда экономия получается кажущаяся.
Но заранее этого не видно. Так во многих областях жизни, не только в контуперах.
g++-3.3 -O2 -g -W -Wall -I/usr/include -DBINDIR='"/usr/local/bin"' slave.o Master.o Slave.o File.o Samba.o SlaveFactory.o Utils.o Exception.o Job.o Debug.o Storage.o ThreadedJob.o -L/usr/lib -lsmbclient -lpthread -o slave1
/usr/lib/libsmbclient.so: undefined reference to `secrets_fetch_machine_password'
/usr/lib/libsmbclient.so: undefined reference to `secrets_fetch'
/usr/lib/libsmbclient.so: undefined reference to `secrets_delete'
/usr/lib/libsmbclient.so: undefined reference to `secrets_store'
гугл что-то не прояснил, где искать эти функции...
libsmbclient-dev только что поставил из debian/unstable
Ты типа хочешь от меня рецепт, как всего достигать, и никогда не ошибаться?
Забавно... Я подозреваю что у тебя libsmbclient собрана с чем-то типа kerberos, etc(там в опциях у samba много подобной шняги). Посмотри с чем у тебя слинкован smbd и попробуй прописать это в LDFLAGS.
Я считаю что нужно избегать костылей всегда, кроме тех случаев, когда это невозможно практически (то есть не от нас зависит). Иначе в будущем будет себе дороже.
попробую потом с какой-нибудь другой версией, если не заломает
Есть типа костыли, а есть типа средства повышения отказоустойчивости.
чё то у тя ни самба ни фтп не пашут
Включил ftp. Samba еще некоторое время будет отключена по причинам перехода на 3.0.8
Основное улучшение - возможность качать сразу с нескольких источников.
Для этого добавился ключ -a [дополнительный урл]. Внимание: программа
пока не проверяет файлы на идентичность(даже по размеру )
брать тут: ftp://braindead.hackers/Downloader4.tar.bz2
---
...Я работаю антинаучным аферистом...
Костыли - это типа для инвалидов. Такое название выражает отношение автора подпорки.
Блиииииин.... Как же вы все достали. Повышает надежность программы? Повышает. Так что, только из религиозных принципов мне их(костыли) убрать? Да, когда мы будем жить в идеальном мире, когда все программы будут правильно работать, тогда и можно будет выкинуть костыли. А сейчас - хрен.
Сделай там типа ifdef или что-нить в этом роде
возможность качать сразу с нескольких источников
вот это маза, кстати
мне часто не хватает...
Блиииииин.... Как же вы все достали. Повышает надежность программы? Повышает. Так что, только из религиозных принципов мне их(костыли) убрать? Да, когда мы будем жить в идеальном мире, когда все программы будут правильно работать, тогда и можно будет выкинуть костыли. А сейчас - хрен.Не повышает ни хрена. Всё сложное менее надежно.
Я так понял у тебя проблема в том, что некоторые вызовы к libsmbclient могут зависнуть? Или у тебя проблема в том, что программа виснет хуй знает где?
В первом случае ты должен просто перед вызовом к libsmbclient сделать alarm(3). Во втором случае нужно сидеть и разбираться, а не писать n-ую программу.
Ни в коем случае. Произносится только "средства повышения надежности".
alarm(3) - это круто. А как в posix определено взаимодействие сигналов и тредов? Куда придет сигнал? В какой тред? А если это nptl? Или linuxthreads? Могу еще подобных вопросов позадавать. А когда я прикручу ftp/http мне там тоже алярмы расставлять? Я уж лучше в одном месте и навсегда. Это БОЛЕЕ ПРОСТО. Подумай над этим.
Теперь вы можете запустить закачку таким образом: lorien_downloader "Имя файла".
Программа пошурует по лориену, найдет все такие файлы и запустит downloader. Будут
использованы ВСЕ найденные соотвествия. Скоросто повышается весьма серьезно. Правда этот метод хорош только для уникально названных файлов. Например фильмов.
Весьма однозначно.
> Куда придет сигнал? В какой тред?
Зависит от тебя и совместимости твоей реализации тредов с POSIX.
> А если это nptl? Или linuxthreads?
Не знаю, я ими не пользовался.
> Могу еще подобных вопросов позадавать.
Задавай.
> А когда я прикручу ftp/http мне там тоже алярмы расставлять?
Если библиотека с помощью которой ты будешь работать с ftp/http будет зависать, то ответ - да.
> Я уж лучше в одном месте и навсегда. Это БОЛЕЕ ПРОСТО. Подумай над этим.
Подумай над тем, что с проблемой ненадежного внешнего вызова ты столкнулся не первый. Наверное уже много людей решали эту проблему, наверное ты не первый используешь libsmbclient. Найди программу где для решения этой проблемы используется твой подход.
Повторно вызывать функции библиотеки нельзя, если они не объявлены реентерабельными.
Более интересный вопрос: а что делать, когда придёт alarm?Повторно, в смысле из обработчика сигнала? Конечно нельзя, дело даже не в реентерабельности. В обработчике нужно поставить флажок и всё. Функция должна завершиться с ошибкой. Если она не завершается с ошибкой, т.к. разработчики перехватывают EINTR внутри функции, то alarm(3) не поможет. Хуй знает что тогда делать.
Повторно вызывать функции библиотеки нельзя, если они не объявлены реентерабельными.
Так вот, знает не только он.
Нужно завершить зависший процесс и породить новый.
В случае с чужой библиотекой нельзя даже гарантировать, что она внутри себя не пользуется тем же сигналом,
что и alarm.
Не обязательно даже из самого обработчика.
Даже если библиотека обработает EINTR и завершит функцию, нельзя быть уверенным, что её внутренние структуры данных
не испортились, раз библиотека кривая.
Даже если библиотека обработает EINTR и завершит функцию, нельзя быть уверенным, что её внутренние структуры данныхЕсли библиотечная функция не вызывается второй раз, после прихода сигнала, то лучше её вообще не использовать. Тогда нужно делать exec после каждого вызова этой функции.
не испортились, раз библиотека кривая.
Может совсем бредовые варианты не будем рассматривать? Изначальная постановка задачи - функция может заблокироваться.
API libsmbclient не смотрел, но часто бывает что-то вроде:
smb_open(...);
smb_read_something(...);
smb_close(...);
smb_read_something внутри вызывает read и он иногда блокируется
если разработчики не предусмотрели, что read может заблокироваться,
то скорее всего, и на EINTR реакция будет какая-нибудь неправильная
например: тут же вызовут read повторно, тогда alarm не поможет
или: аварийно завершат функцию smb_read_something так, что структуры данных библиотеки окажутся испорчены
как можно всё-таки надёжно использовать такую библиотеку, при условии, что подвисания происходят не слишком часто:
можно создавать по процессу на каждое соединение, и, если с ним случилась лажа, просто прибивать его,
и пытаться продолжить скачивание в другом процессе
по-моему, именно такая схема наиболее проста, и обеспечит наивысшую надёжность
Тот же вопрос, что и у: какие ты знаешь программы использующие libsmbclient, действующие по этой схеме?
я не знаю ни одной программы, использующей libsmbclient
Моя программа действует примерно по этой схеме.
Downloader3 скомпилировался с libsmbclient из debian sarge, но хочу последнюю версию сразу попробовать, а ftp не работает.
Наверное нету команды apt-grep?
Используют:
gnomevfs
kpopup
linpopup
xsmbbrowser
интерфейсы к perl и python
ama
apsfilter
linneighborhood
smb2www
KDE (konqueror)
я сомневаюсь что хоть в одном из этих софтов используется внешний процесс следящий за основным.
на многое из этого набора жаловались на ненадёжную работу с smb, даже в этом форуме
Всё, спорить мне на сегодня надоело. Признаю, что вы с braindead гении, изобрели новый способ работы с libsmbclient. Вышлите патчи разработчикам вышеперечисленных программ, что бы они не глючили.
Сначала надо обговорить сроки и оплату.
ftp://braindead.hackers/Downloader5.tar.bz2
PS:
PS:
Появилась новая версия программы. Чистка кода, добавление поиска по лориену.
Теперь вы можете запустить закачку таким образом: lorien_downloader "Имя файла".
Программа пошурует по лориену, найдет все такие файлы и запустит downloader. Будут
использованы ВСЕ найденные соотвествия. Скоросто повышается весьма серьезно. Правда этот метод хорош только для уникально названных файлов. Например фильмов.
свою программу бесплатно для общества пишет. Бери с него пример.
Поэтому сравнивать это с ковырянием в говнопрограммах, которые сами по себе никуда не впились, не надо.
Ну как тебе сказать, я на днях собираюсь на sourceforge зарегистрировать проект.(+ к уже имеющимся ). Так что я пытаюсь чтобы программа была полезна не только для меня.
То есть, ты признаёшь сравнение корректным, и скоро мы увидим патчи для всех перечисленных программ?
http://unix.molod.ru/index.php?page=flux
http://unix.molod.ru/index.php?page=mdm
http://unix.molod.ru/index.php?page=reader
Автор: Самохвалов Антон
Ну по крайней мере теперь все встает на свои места.
И что? Я никогда не скрывал как меня зовут
lorien_downloader, где адрес сервера и формат его вывода зашит в C++-код, не буду запускать никогда
пожелание:
1) slave* в $PATH делать нечего, для такого придумали libexec
2) неплохо бы скорость скачивания выводить
PS. Идея парсить html мне нравится. Он может легко изменяться.
1) libexec - а что это? В LSB такого вроде нет. Это какое-то странное новвоведение Могу поместить в /usr/lib/downloader, как многие проги делают.
2) Скорость - будет.
В FHS, ты хотел сказать?
/usr/progs там тоже нет
Да, именно это я и хотел сказать. В общем, могу сделать инсталляцию slave в любую директорию. Если надо - просто поменяешь.
Шаблоны или что там нужно для разбора конкретного формата HTML(XML) - тоже в конфиге.
> Ну лень мне было вспоминать как делать gethostbyname
Это не обязательно помнить, когда есть man
В общем было 3 часа ночи и мне жутко хотелось спать. Я просто хотел побыстрее доделать, получить результат. XML - не будет. Скорее всего приделает что-нибудь с чем можно работать напрямую.
такого ?
что-то типа Оно всего лишь автоматизирует перезапуск программы.
От безнадёжности.
---
...Я работаю антинаучным аферистом...
Надежность без этой штуки точно меньше. Значит надежность поввышается. Что-то у вас с логикой, батенька, не в порядке...
Меньше риск повесить систему так, что она потом вообще не загрузится?
С какой стати?
---
...Я работаю антинаучным аферистом...
Чегооооо? Какую еще систему? Я говорю о своем конкретном случае.
перезапуском?
Это действие приводит к порче системы или потере данных,
не имеющих прямого отношения к работе твоей программы?
---
...Я работаю антинаучным аферистом...
Маза ты как-то не так понимаешь "надёжность".
Пример использования:
downloader -f "ftp://braindead.hackers/qw" -a "smb://braindead.hackers/pub/qw" -n 2
когда GUI будет?
Не скоро. Я же говорил, сейчас меня больше интересует надежность. Да и другой работы немало...
Оставить комментарий
mirt1971
Вашему вниманию предлагается весьма функциональный загрузчик файлов по протоколу smb(возможно вскоре появится поддержка и ftp). Возможности: дозакачка, восстановление после прерывания сесси, многопоточность. В общем все что необходимо . Взять можно тут: smb://braindead.hackers/pub/Downloader3.tar.bz2Для того чтобы собрать его, нужно отредактировать Makefile. А именно - прописать место установки Samba(например /usr, у меня - /usr/progs/Samba). После чего - make && make install.
Работа с программой:
downloader -d "smb://braindead.hackers/pub/Video/Friends" - закачка директории
downloader -f "smb://braindead.hackers/pub/Downloader3.tar.bz2" - закачка одного файла
Поддерживаемые опции: -n количество_потоков
Просьба пока не распространять программу, так как она находится в стадии тестирования. Хотя я уже скачал достаточно много данных, но... кто знает