View Full Version : Wl-hdd и Ftp-клиент. как?
заранее прошу прощения за возможную ламероватость вопроса - но, в линухе и сетевых технологиях я не копенгаген.
.
обрисую задачку: есть WL-HDD с хардом, подключенный по LAN к ADSL-модему/роутеру в один из портов.
нужно прикрутить к WL-HDD простейший фтп-клиент, который бы автоматически обрабатывал два файла, размешенны е в нужных директориях:
1) ftplist:
ftp login passwd
------------------------------------
ftp.a1.org guest guest
ftp.bc.com misha *****
т.е. список фтп-серверов , логинов и паролям к ним.
2) ftpqueue:
ftp.a1.org/dir1/dir2/dir3/1.bin
ftp.bc.org/dir221/dir56/dir576/dir91/z2.iso
т.е. очередь файлов на закачку
из фичей - нужна только возможность вручную стартовать/останавливать фтп-клиент и поддержка "докачки" и автовосстановления соединения (cоединения с фтп-сервером).
.
может решение уже и есть. но мой плохой ангийский не позвооляет его найти и ознакомиться - тогда направьте линком на путь истинный..
.
если нету, то, как я пониаю, путей несколько - либо нужен какой-л. скрипт, выполняющий действия фтп-клиента, либо полноценный фтп-клиент, выполняющийся с харддрайва - тогда вопрос какой именно и как прикрутить?
(второй вариант более предпочтительный потому как в перспективах (может и далеких) прикрутить к WL-HDD линуксовый eMule)
Спасибо за внимание к теме.
А зачем 2 файла? Сделайте один. И в нём:
ftp://guest:guest@ftp.a1.org/dir1/dir2/dir3/1.bin
ftp://misha:*****@ftp.bc.org/dir221/dir56/dir576/dir91/z2.iso
Далее кормите это дело wget. Если повезёт, он скачает. :)
Лучше сделать даже не совсем так. Выбрать на диске директорию, куда вы будете писать отдельный файл для каждой закачки, в котором будет строчка типа ftp://guest:guest@ftp.a1.org/dir1/dir2/dir3/1.bin
И простейший скрипт, который раз в минуту сканирует эту директорию и если что-то там находит, берёт содержимое файла и запихивает wget. После скачивания файл удаляется или переносится в другую директорию. Можно ещё и лог писать.
большое спасибо за ответ! оказывается всё намного проще :)
нашел описание на BusyBox и формат вызова wget
и тем не менее, в силу собственной линуксорамероватости остались вопросы:
ну например до скриптов еще не дорос не знаю как их писать (синтаксис и идеология) и запускать на сабже, поэтому пробовал запустить wget из веб-интерфейса в меню "выполнить команду" (тестировал - другие команды выполняются)
но столкнулся с тем, что строчка запуска типа:
wget -P /part001/ftp_inbox ftp://misha:*****@ftp.bc.org/dir221/dir56/dir576/dir91/аааааааа_ссссссссссссссс_ооооооооооооооо.iso
банально не умещается в поле ввода :(
(и правильно лия указываю директорию ввода, если фтп-клиент с виндовой машины видит тома харда как part001, part002, ...)
.
а вообще если есть хорошая книжка (русск. либо англ.) посоветуйте - по линуксу и написанию скриптов.
в папке www есть файл Main_AdmStatus_Content.asp
в нем строка <input type="text" size="64" name="SystemCmd" value="">
поменяй на <input type="text" name="SystemCmd" value="">
из коммандной строки - nohup команда|скрипт &
книжка - google.com - поиск "man bash"
насчет "man bash" втянул.. перевариваю... спасибо.
..а поповоду папки www и правик файлов - это имеется в виду дистрибутив пересобрать с этим файлом?! ... или редактирование возможно на "лету": .т.е. "втянуть" его на РС, отредактировать и залить обратно.. т.е. флеш сама перезапишет его?!
подскажите, плиз..
большое спасибо за ответ! оказывается всё намного проще :)
нашел описание на BusyBox и формат вызова wget
и тем не менее, в силу собственной линуксорамероватости остались вопросы:
ну например до скриптов еще не дорос не знаю как их писать (синтаксис и идеология) и запускать на сабже, поэтому пробовал запустить wget из веб-интерфейса в меню "выполнить команду" (тестировал - другие команды выполняются)
Там запускать не надо. Сделайте telnet на роутер и развлекайтесь. :) Насчёт скриптов - поищите в яндексе про Unix Shell, либо документацию на ash.
но столкнулся с тем, что строчка запуска типа:
wget -P /part001/ftp_inbox ftp://misha:*****@ftp.bc.org/dir221/dir56/dir576/dir91/аааааааа_ссссссссссссссс_ооооооооооооооо.iso
банально не умещается в поле ввода :(
(и правильно лия указываю директорию ввода, если фтп-клиент с виндовой машины видит тома харда как part001, part002, ...)
.
а вообще если есть хорошая книжка (русск. либо англ.) посоветуйте - по линуксу и написанию скриптов.
Имя раздела неправильное, оно будет /tmp/harddisk/ . Сделайте telnet и наберите mount, увидите всё.
Tsvetkov
13-01-2006, 15:04
приду домой выложу поравленый файлик - если у подключен винт по этому (http://wl500g.info/showpost.php?p=18094&postcount=11) мануалу просто скопируешь на винт
Tsvetkov
13-01-2006, 17:56
сделано было под себя
1. убрано ограничение
2. продублирована кнопка "refresh" чтоб перейти на нее по 1 Tab
3. увеличена область вывода данных
4. убран мусор из кода
фантастика!!
подключился через telnet
запустил wget - качается.... радости моей нету окончания!!! =)
начинает всё больше и больше нравиться Линукс :)
терь буду осваивать скриптописание :)
кстати, кто-нить из опытных линуксоводов может оценить перспективность затеи прикрутить к WL-HDD линуксового клиента p2p сети (еДонкей) , установив его на хард (как я понимаю там несмного переделать нужно - чтобы функционирование было простое ,как и у wget'a - есть файл с очередями файлов (e2dk -ссылками) и файл настроек сервера, лимиты даун/уплоада) ?
Tsvetkov
13-01-2006, 20:02
ссылка (http://ipkg.nslu2-linux.org/feeds/unslung/wl500g/) где можно взять дополнительные пакеты
там тебе надо gift (http://gift.sourceforge.net/) (с плугинами) и torrent пекеты
для torrent нужно nohup
ps почитай на форуме про ipkg
ссылка (http://ipkg.nslu2-linux.org/feeds/unslung/wl500g/) где можно взять дополнительные пакеты
там тебе надо gift (http://gift.sourceforge.net/) (с плугинами) и torrent пекеты
для torrent нужно nohup
ps почитай на форуме про ipkg
спасибо за ссылки!. .буду разбираться.. пока столкнулся с таким нежелательным эффектом:
запускаю по телнету wget - всё пашет, файл качается, но при закрытии телнета wget перестает работать :(
я так понимаю через скрипты всёже надо..
тогда вопрос такой: с их написанием и запуском разберусь пожалуй.. а вот, как я понимаю их еще закачать надо на WL-HDD. в связи с этим вопрос: как (и куда) надо помещать файлы скриптов? (на HDD, во flash, на USB-flash?? предпочтительным был бы запуск с HDD)
Tsvetkov
14-01-2006, 22:53
из коммандной строки - nohup команда|скрипт &
сохранять скрипты в /usr/local/sbin/
почитать инструкция по настройке WL-500g deluxe с нуля (http://wl500g.info/showthread.php?t=3171)
почитать faq Олега - про загрузку с внешнего устройства
из коммандной строки - nohup команда|скрипт &
сохранять скрипты в /usr/local/sbin/
Спасибо за совет о nohup. прошу прощения что в предыдущем посте пропустил мимо ушей совет о нем.
потом сам в книжке нашел :)
только он на моей прошивке (1.9.2.7-5) из под телнета не запускается:
[admin@(none) root]$ nohup
-sh: nohup: not found
пока обошел это амперсандом в конце строки вызова wget'a - после выхода из телнета продолжает качать.
попутно в инете набрел на замечательное русскоговорящее руководство для новичков:
http://gazette.linux.ru.net/rus/articles/abs-guide/index.html (Advanced Bash-Scripting Guide. Искусство программирования на языке сценариев командной оболочки)
кому-то может пригодиться.
чем глуюже влезаю тем вопросов не отбавляется.
вот например в скрипте можно двояко периодически вызывать проверку поступления в очередь новых заданий на закачку:
1) использовать cron и в файле заданий crontab прописать строчку вызова типа " * * * * * <имя скрипта>" - как я понимаю оно тогда будет вызывать скрипт каждую минуту.
2) запускать в скрипте "вечный цикл" и внутри него задавать задержку оператором wait. тем более сами руководства предрекают использовать его в связке с nohup: "Если вы собираетесь использовать nohup в сценариях, то вам потребуется использовать его в связке с командой wait, чтобы не породить процесс "зомби""
.
и еще непонятно как проверять "отработала" ли запущенная версия wget, чтобы при непустой очереди закачек запускать вновь wget. понимаю надо как-то с PID завязать это дело, но как - пока не до конца
Tsvetkov
16-01-2006, 10:04
обновляйте прошивку в 1.9.2.7-7b есть nohup
ток, чтот bash не хочет в скриптах работать на этой прошиве
вот так ругаеться - line 1: id: command not found
обновляйте прошивку в 1.9.2.7-7b есть nohup
ток, чтот bash не хочет в скриптах работать на этой прошиве
вот так ругаеться - line 1: id: command not found
странно.. может там особенное указание на расположение интерпретатора после #! надо???
Извините, нет времени ходить по ссылкам. Если там первая строка такого вида:
#!/bin/bash
то работать конечно не будет, ведь файла /bin/bash нет. Либо корректируйте путь до установленного bash (/opt/bin/bash), либо заменяйте на встроенный /bin/sh
Tsvetkov
17-01-2006, 08:04
вопщем незнаю вчем фишка - cron скриптик стартует нормально
ручками не хочет ругаетья - ладно будет время поковыряю
пока не критично
сохраняю написанный скрипт:
mkdir -p /usr/local/sbin/
chmod +x /usr/local/sbin
cp /tmp/harddisk/ftp_home/mysc1.sh /usr/local/sbin/mysc1.sh
flashfs save
flashfs commit
flashfs enable
# Перевключение WL-HDD
файл сохранился где положено, но скрипт не выполняется:
[admin@(none) root]$ cd /usr/local/sbin
[admin@(none) sbin]$ ls
mysc1.sh
[admin@(none) sbin]$ cd /
[admin@(none) /]$ mysc1
-sh: mysc1: not found
[admin@(none) /]$ nohup mysc1 &
[admin@(none) /]$ nohup: appending output to '/usr/local/root/nohup.out'
nohup: cannot run command 'mysc1': No such file or directory
UPD: прошивка стоит последняя от Олега - т.е. хххх-7b
Tsvetkov
22-01-2006, 14:33
как бы вот так будет красиво nohup sh /tmp/harddisk/ftp_home/mysc1.sh > /tmp/harddisk/ftp_home/temp.txt &
если в скрипте есть #!/bin/sh и у него стоят аттрибуты запуска, то sh можно опустить
ps mysc1.sh и mysc1 это разные файлы - эт тебе не винда