PDA

Bekijk de volledige versie : Запуск приложений на роутере



s0Va
10-10-2007, 07:49
Правильно ли я понял, что /usr/local/sbin перезаписывается каждый раз из флеша вне зависимости от того, есть ли уже его содержимое на загрузочном томе или нет?

Хотелось бы сделать так, что при загрузке с флеша использовались бы post-boot, post-mount и т.д. из флеша, а при загрузке с USB HDD, соответственно, те же файлы с HDD. Можно, конечно, вставить в скрипты на флеше загрузку скриптов с HDD с условием типа "if exists...", но, может быть, есть более изящное решение?

owl83
05-12-2007, 10:34
Доброго времени суток, уважаемые!

У меня возникла вот какая проблема. С помощью cron пытаюсь выполнить скрипт на python,
но у меня это не получается :(

В папке /opt/etc/cron.5mins/ у меня лежит файл test-py2.4 :


#!/opt/bin/python2.4
sys.stderr.write('Preved, kreved")


В файле crontab прописано вот что:


SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
MAILTO=""
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/5 * * * * admin /opt/bin/python2.4 /opt/etc/cron.5mins/test-py2.4 >> /tmp/cron_2min.log


В результате выполнения задания в лог ничего не выводится

Если прописать так:

*/5 * * * * admin /opt/bin/python2.4 -h >> /tmp/cron_2min.log
то в лог вполне нормально выводится справка по опциям запуска питона

Наверняка, тут дело в какой-то ерунде, но у меня что-то ума не хватает с ней справиться.
Подскажите, что можно сделать?

Mam(O)n
05-12-2007, 10:40
Добавь к концу команды через пробел 2>&1 чтобы ошибки из stderr тоже в файл попадали.

upd: возможно в переменных окружения каких путей не хватает

owl83
05-12-2007, 14:59
2Mam(O)n
Супер! Мне как раз не хватало, чтобы ошибки тоже в лог писались.
Это я разбираюсь с запуском getmail через cron. Теперь дело сдвинулось.
Спасибо еще раз

djet
17-01-2008, 18:53
Что меня больше всего раздражает в веб-морде - это необходимость перезапуска при любых изменениях, в то время как достаточно поправить пару файлов и перезапусить демонов. Как это сделать для l2tpd? Его запуск руками ни к чему не приводит, процесс появляется, но туннель и ppp-сессия не создаются. С какими параметрами его запускает веб-морда?

djet
26-02-2008, 21:27
Всё ещё актуально...




[routah:root] ka -9 l2tpd

[routah:root] cat /etc/l2tp/l2tp.conf
# automagically generated
global

load-handler "sync-pppd.so"
load-handler "cmd.so"

section sync-pppd

lac-pppd-opts "file /tmp/ppp/options.wan0"

section peer
peername 85.21.0.17
lac-handler sync-pppd
persist yes
maxfail 32767
holdoff 30
section cmd

[routah:root]
[routah root]$ l2tpd -d 127 -f &

[routah:root] l2tp-control "start-session 85.21.0.17"
ERR Unknown peer

0.000 l2tp_peer_find(85.21.0.17) examining peer 0.0.0.0/32
0.003 l2tp_peer_find(85.21.0.17) found NULL/-1
25.235 l2tp_peer_find(85.21.0.17) examining peer 0.0.0.0/32
25.235 l2tp_peer_find(85.21.0.17) found NULL/-1

rutman
05-03-2008, 14:09
Господа, здравствуйте!
Купил я чудо-девайс WL-500gP, но даже подсоединиться к нему не могу.
192.168.1.1 пингуется, 192.168.1.2 роутер дает компу.
А в настройки не входит. В эксплорере вбиваю адрес 192.168.1.1, появляется пустая страница и все. Ни ошибок, ничего нет.
telnet my.router или telnet 192.168.1.1 говорит "Connecting To my.router...Could not open connection to the host, on port 23: Connect failed".
Назначил компу в TCP/IP адрес 192.168.1.2 и маску 255.255.255.0. Пытался прошить роутер, ничего не выходит. Говорит, что не обнаружено устройств в режиме восстановления.
И tftp тоже пытался. Сразу Timeout пишет.

Но самое главное: сегодня был в сервис-центре. Все работает!!!
Прошивка 1.9.7.5.
Помогите, пожалуйста!

al37919
05-03-2008, 15:34
файрвол в винде выключали?

rutman
05-03-2008, 15:40
файрвол в винде выключали?
Он и не включен. Касперского отключал - не помогает.
Есть подозрение на Virtual Machine. Как это может влиять? Ведь пингуется роутер нормально...

Dimesku
05-03-2008, 20:03
Такая же проблема, пинг есть и все, в ИЕ пишет "невозможно отобразить страницу...". Работает только асусовская утилита для быстрой настройки беспроводной сети. Если както решили проблему - напишите плз.

twinsys
05-03-2008, 20:33
Такая же проблема, пинг есть и все, в ИЕ пишет "невозможно отобразить страницу...". Работает только асусовская утилита для быстрой настройки беспроводной сети. Если както решили проблему - напишите плз.

Подумав, могу предложить проверить 2 варианта
1-Проверить, а не стоит ли у вас галочка “работать автономно” в Internet Explorer…
2-Проверить что у вас в сервис – свойство обозревателя – подключение – настройка LAN…
удачи...

rutman
06-03-2008, 15:11
Подумав, могу предложить проверить 2 варианта
1-Проверить, а не стоит ли у вас галочка “работать автономно” в Internet Explorer…
2-Проверить что у вас в сервис – свойство обозревателя – подключение – настройка LAN…
удачи...

Проблема удачно решилась удалением VMWare. К сведению всех: VMWare забирает 192.168.1.1, поэтому нужно менять IP или в роутере, или в программе.

al37919
06-03-2008, 15:28
да ни хрена она не забирает. Просто за роутером надо ставить сетевые настройки в bridged. Тогда vmware получает адрес от роутера в той же подсетке. А вот если в гостевой ОС, установленной в vmware, у вас dhcp сервер крутится... Тут уж извиняйте --- совсем беда.

rutman
06-03-2008, 15:32
да ни хрена она не забирает. Просто за роутером надо ставить сетевые настройки в bridged. Тогда vmware получает адрес от роутера в той же подсетке. А вот если в гостевой ОС, установленной в vmware, у вас dhcp сервер крутится... Тут уж извиняйте --- совсем беда.

Факт: у меня был установлен VMWare, так я не мог достучаться до роутера. Только ping и работал. Где уж тут какие-то настройки ставить? Может после конфигурации роутера и последующей установки VMWare все встанет на место - меня это пока не волнует. :)

lly
06-03-2008, 15:39
Может после конфигурации роутера и последующей установки VMWare все встанет на место - меня это пока не волнует. :)
Последовательность установки не играет роли. Просто вы проклацали сетевые настройки в VmWare по дефолту, не глядя - результат налицо. Надо было обязательно зайти на закладку DHCP в Virtual Network Editor'е и проверить диапазоны сетей.

rutman
06-03-2008, 15:44
Последовательность установки не играет роли. Просто вы проклацали сетевые настройки в VmWare по дефолту, не глядя - результат налицо. Надо было обязательно зайти на закладку DHCP в Virtual Network Editor'е и проверить диапазоны сетей.
Резонно, но я чайник - это раз, VMWare устанавливал год назад, когда о роутере даже не помышлял - это два, а роутер только в воскресенье приобрел - это три. :rolleyes:

Oleg
06-03-2008, 20:51
l2tp-control "start-session 0.0.0.0"

djet
06-03-2008, 21:09
Благодарю. Набросал для себя коротенький скрипт:


#!/bin/sh
killall l2tpd
sleep 2s
l2tpd
sleep 1s
l2tp-control "start-session 0.0.0.0"

tchaynik
27-03-2008, 18:19
Задача в следующем:
Есть wl500gP с PPPoE соединением.
пров раз в сутки рвет сессию.
Нужно при разрыве/ коннекте гасить старый openVPN и стартовать новый.

Oleg
27-03-2008, 19:48
Так он сам это обнаружит, если ходят кипалайвы. Я ничего не делаю и всё работает.

DemonGloom
04-07-2008, 08:29
Возможно ли сделать автоматическим запуск bash вместо ash так, что-бы к устройству можно было нормально подключиться? (используется putty).
Я смог добиться такого :

Using username "root".
Authenticating with public key "rsa-key-20080620"
bash-3.2#
Хочется :

Using username "root".
Authenticating with public key "rsa-key-20080620"
[root@WL-001E8C2E649A ~]$

6opoga
04-07-2008, 16:11
Ну судя по всему не взводится $PS1, то есть не выполняется ~/.bash_profile или ~/.bashrc.

Почему:
1) может быть баша с неправильным параметром зовет дропбир. Лечится заменой дропбира на честный sshd.
2) нету ни одного файла с профилем. Лечится созданием файла и записью во флеш.

DemonGloom
04-07-2008, 18:55
Можно по-подробнее?

DemonGloom
05-07-2008, 10:12
Все, я нашел решение.
В папке /usr/local/root создаем файл .bashrc
В него записываем


PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin
LD_LIBRARY_PATH=/opt/lib:${LD_LIBRARY_PATH}

#COLOR1="\[\033[0;36m\]"
#COLOR2="\[\033[0;32m\]"
#COLOR3="\[\033[1;33m\]"
#COLOR4="\[\033[1;37m\]"

PS1="[\u@\h \W]$ "
#PS1="$COLOR2[$COLOR3\u@\h$COLOR2:$COLOR1\W$COLOR1\\]$ $COLOR4"

export TERMINFO=/opt/share/terminfo
export TERM=xterm
export PS1 PATH LD_LIBRARY_PATH


Далее в putty: Connection/SSH : RemoteCommand: bash
И все нормально будет работать
P.S. Если раскомментировать строки с #, то заголовки будут нарисованы разными цветами. (но в самом sh это будет выглядеть "забавно", если его запускать из bash)

Boris2777
14-07-2008, 06:05
Установил приложение cron, а оно автоматом не запускается....
Как сделать запуск приложения раз в 30 минут на роутере? подскажите, пожалуйста :)

а ещё лучше - как сделать запуск приложения после очередного коннекта к провайдеру, с задержкой 5 минут?

скажите, пожалуйста, хотя бы один из вариантов!

vectorm
14-07-2008, 07:16
Установил приложение cron, а оно автоматом не запускается....
Как сделать запуск приложения раз в 30 минут на роутере? подскажите, пожалуйста :)

а ещё лучше - как сделать запуск приложения после очередного коннекта к провайдеру, с задержкой 5 минут?

скажите, пожалуйста, хотя бы один из вариантов!
http://wl500g.info/showpost.php?p=60932&postcount=3
Пункт 8.

Boris2777
14-07-2008, 13:27
Спасибо, установил, крон запускается.. нашел файл /opt/etc/crontab

установил туда запуск.. а ничего не запускается, хотя крон в процессах висит.. что я делаю не так? запускаю вот так -
в post-mount - /opt/etc/init.d/S10cron start

Reyter
14-07-2008, 13:37
нашел файл /opt/etc/crontab
установил туда запуск.. а ничего не запускается
crontab выкладывай

vectorm
14-07-2008, 14:02
Спасибо, установил, крон запускается.. нашел файл /opt/etc/crontab

установил туда запуск.. а ничего не запускается, хотя крон в процессах висит.. что я делаю не так? запускаю вот так -
в post-mount - /opt/etc/init.d/S10cron start
Читай тут (http://wl500g.info/showpost.php?p=59637&postcount=42), со слов "Редактируем /opt/etc/crontab."
Сделаешь как написано, потом в папку /opt/etc/cron.5mins кидаешь свой скрипт, будет каждые 5 минут отрабатывать.

Boris2777
14-07-2008, 15:37
все сделал по инструкции, так и не запускается ничего... =(
как посмотреть логи, что не так?

vectorm
14-07-2008, 16:03
все сделал по инструкции, так и не запускается ничего... =(
как посмотреть логи, что не так?
Скрипт приложи полностью.

Boris2777
14-07-2008, 21:33
Выкладываю!

/opt/etc/cron.30mins/every.sh


/opt/bin/every -u mylogin -p mypassword


и /opt/etc/crontab


SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/sbin:/opt/bin
MAILTO="root"
HOME=/
# ---------- ---------- Default is Empty ---------- ---------- #
*/1 * * * * * /opt/etc/cron.30mins/


пробывал и имя указывать и файл run-parts создавать, по разному - итог один - не запускается и всё тут. Мне не нужны директории, проще каждый процесс руками прописывать (для меня), подскажите, как прописать просто чтобы раз в 30 минут запускать мой файлик?

зы. сам по себе файл every.sh , если его запустить - работает, по крону - нет..

ещё одно заметил...

[Boris@inet root]$ crontab -e
You (Boris) are not allowed to use this program (crontab)
See crontab(1) for more information

Marks
14-07-2008, 22:07
Выкладываю!

пробывал и имя указывать и файл run-parts создавать, по разному - итог один - не запускается и всё тут. Мне не нужны директории, проще каждый процесс руками прописывать (для меня), подскажите, как прописать просто чтобы раз в 30 минут запускать мой файлик?

зы. сам по себе файл every.sh , если его запустить - работает, по крону - нет..

ещё одно заметил...

[Boris@inet root]$ crontab -e
You (Boris) are not allowed to use this program (crontab)
See crontab(1) for more information
А run-parts у вас отсутствует что ли?

#!/bin/sh
#
# runparts.sh by macsat@macsat.com
# intended for use with cron
#
# based on rc.unslung by unslung guys :-)
#
if [ -z "$1" ]
then
echo "Usage : $0 "
fi

RUNDIR=$1"/*"

for i in $RUNDIR ;do

# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue

case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
doneДолжен быть исполняемым


*/1 * * * * * логин /opt/bin/run-parts /opt/etc/cron.30mins/

*/1 * * * * *это точно 30 мин?

velsi
14-07-2008, 22:25
зачем все так сложно?

надо всего лишь установить cron

далее
crontab -e

вписать туда


*/30 * * * * /opt/bin/every -u mylogin -p mypassword

в post-mount'е запускать крон

P.S. прошу обратить внимание на то, что формат задачи крона задан автором не верно ... там 5 звездочек =), а не шесть, как у автора.

Marks
14-07-2008, 22:32
зачем все так сложно?

надо всего лишь установить cron

далее
crontab -e

вписать туда


*/30 * * * * /opt/bin/every -u mylogin -p mypassword

в post-mount'е запускать крон

P.S. прошу обратить внимание на то, что формат задачи крона задан автором не верно ... там 5 звездочек =), а не шесть, как у автора.

velsi зачем изобретать велосипед?

Boris2777
15-07-2008, 08:17
Забил на крон, написал маленький скрипт - кому интересно -

запуск проги
sleep 1800 (спим 30 минут)
запуск файла 2

файл2
запуск скрипта

всё работает с этим скриптом.. тему можно закрывать... а крон так и не заработал.

Единственная проблема... в top висят куча процессов sh.. это нормально?

делаю ещё раз крон.. похоже, у меня 2 разных крона из разных репозитариев... сижу разбираюсь..

vectorm
15-07-2008, 13:46
Единственная проблема... в top висят куча процессов sh.. это нормально?
Следствие работы подобного скрипта ... Думаю, с течением времени забьют все ресурсы и повиснет агрегат.

sonic
15-07-2008, 17:39
Следствие работы подобного скрипта ... Думаю, с течением времени забьют все ресурсы и повиснет агрегат.
Cогласен, лучше настроить крон.

Boris2777
16-07-2008, 05:11
Вообщем, всё получилось настроить через крон! я переименовал логин Boris через веб интерфейс в root , и crontab -e стал нормально запускаться, там прописал - что нужно делать и всё. Всем спасибо! наконец-то нормально всё работает..

DemonGloom
06-02-2009, 19:26
Возможно ли это? Я попытался, но dropbear вместе со screen сразу завершаются (исключая вариант, когда сначала руками запускается screen, а затем в нем руками dropbear). При это на экран ничего не выводится кроме [screen is terminating] ( проверял с опцией -L) . Просто хочется запустить dropbear с ключом -E (что-бы не забивать лог) но при этом не потерять историю последних обращений к нему...

angel_il
06-02-2009, 19:32
дико извиняюсь, не понял зачем?

Vityok
06-02-2009, 19:35
Не хочет человек, чтоб в лог писалось, как он туда входит-выходит.

StaREViL
06-02-2009, 19:56
Мммм...либо я чего то не понял.

screen -S "dropbear" -X screen dropbear -E 2>&1 1>/dev/null

Nebulosa
06-02-2009, 21:11
Ctrl+A+D - отцепиться от скрина.

DemonGloom
07-02-2009, 07:43
Мммм...либо я чего то не понял.

screen -S "dropbear" -X screen dropbear -E 2>&1 1>/dev/null

опять же dropbear сразу завершается ничего не говоря.. кстати, запуск screen из-под screen это нормально?


Ctrl+A+D - отцепиться от скрина.

Я не настолько плох... (забавно, я привык нажимать Ctrl+a, затем отпускать и затем нажимать d :) )

StaREViL
07-02-2009, 08:19
опять же dropbear сразу завершается ничего не говоря.. кстати, запуск screen из-под screen это нормально?




На счет нормально, не уверен.
Но у меня таким образом ссх запустился.

Lesder
31-03-2009, 21:36
Всем привет.
Прошу помочь, все перерыл, но не нашел ответа. Может конечно плохо рыл =).
Роутер Asus-Wl500gpV2 прошивка 1.9.2.7-10.7
проблема такая читал что можно крон и lighttpd запускать из post-boot а кое где вообще написано из post-mount вообщем не суть, не запускается ни откуда =).
строки запуска
/opt/etc/init.d/S10cron
/opt/etc/init.d/S80lighttpd start
Прошу помощи. Заранее спасибо.

Less
31-03-2009, 22:03
А Вы маны читали по первой настройке?
файл /opt/etc/init.d/rc.unslung
Запускает все слуюбы и соответственно останавливает.

Lesder
31-03-2009, 23:31
А Вы маны читали по первой настройке?
файл /opt/etc/init.d/rc.unslung
Запускает все слуюбы и соответственно останавливает.

Читал читал... Просто из post-boot меньше всего прописывать... =)

Vimas
22-01-2010, 09:21
Вопрос к знактокам:
Я скомпилировал свою програмку. Закинул ее в /usr/local/bin
Как положено, сохранил flashfs. Так вот запустить ее не получается до тех пор пока не примонтирую усб флешку в /opt
Без примонтированной флешки шелл пишет что программа не найдена.
Путь /usr/local/bin по умолчанию присутствует в переменной PATH
Самое интересное что скрипты (командные файлы начинающиеся с
#!/bin/sh
запускаются и без флешки
./имя_скрипта
Подскажите что можно сделать чтоб шелл смог найти мою програмку без примонтирования флешки

al37919
22-01-2010, 10:16
если прога скомпилирована с помощью тулчейна optware, то она зависит от библиотек optware, которые живут в /opt/lib. Каких именно можно посмотреть командой ldd

Vimas
22-01-2010, 22:37
если прога скомпилирована с помощью тулчейна optware, то она зависит от библиотек optware, которые живут в /opt/lib. Каких именно можно посмотреть командой ldd

Огромное спасибо за подсказку. Так и есть. Компилировал на роутере тулчейном buildroot. А как можно скомилировать прогу без привязки к /opt/lib ?

al37919
22-01-2010, 23:10
нужно кросс-компилировать тем же тулчейном, что и прошивку

http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware?wl=ru
http://www.wl500g.info/showpost.php?p=127349&postcount=198

Vimas
25-01-2010, 15:04
Спасибо. Буду разбираться.

van-der-van
04-05-2011, 08:05
Есть роутер DIR-320 с прошивкой от Олега (ядро 2.6). Необходимо при старте веб-интерфейса запускать приложение (suart). Каким образом это можно сделать на ASP?

P.S. веб-интерфейс в настоящее время запускается с примонтированной флешки

FilimoniC
04-05-2011, 08:26
Есть роутер DIR-320 с прошивкой от Олега (ядро 2.6). Необходимо при старте веб-интерфейса запускать приложение (suart). Каким образом это можно сделать на ASP?

P.S. веб-интерфейс в настоящее время запускается с примонтированной флешки

Зачем это делать на ASP?

#!/bin/sh
httpd -p 81 -d
suart -a -b -c -d
Применрно так..

van-der-van
04-05-2011, 08:29
#!/bin/sh
httpd -p 81 -d
suart -a -b -c -d
Применрно так..

А куда нужно вставить этот код?


Зачем это делать на ASP?
Просто suart почему то в автозапук не хочет ставиться и поэтому его надо запустить, когда человек заходит в веб-интерфейс.
Вот и интересуюь всеми возможными способами.