Биллинговая система Nodeny

Главная категория => Разработка => Тема начата: tramX от 06 Августа 2010, 14:14:08



Название: Перезагрузка ядра
Отправлено: tramX от 06 Августа 2010, 14:14:08
Здравствуйте. Как происходит перезагрузка ядра через веб интерфейс. Какую функцию для этого нужно использовать?


Название: Re: Перезагрузка ядра
Отправлено: VitalVas от 06 Августа 2010, 17:12:18
Здравствуйте. Как происходит перезагрузка ядра через веб интерфейс. Какую функцию для этого нужно использовать?
это для модуля или так?

если так, то "Управления" - "Рестарт"


Название: Re: Перезагрузка ядра
Отправлено: tramX от 06 Августа 2010, 18:20:24
Я знаю где в Nodeny пере запускать ядро. Меня интересует сама реализация перезапуска. Я пишу свой perl скрипт, вводятся данные через веб. После того как данные введены нужно передать их скрипту и перезапустить его. Как это реализовывается в Perl.


Название: Re: Перезагрузка ядра
Отправлено: blackjack от 06 Августа 2010, 20:13:20
ну я думаю там какойто
Код:
INSERT INTO <какаято таблица> (<какоето поле>) VALUES ('restart')

пусть разработчик напишет точно. ну или разбираться в коде и смотреть где там рестарт


Название: Re: Перезагрузка ядра
Отправлено: tramX от 06 Августа 2010, 22:25:01
Зачем MySQL? Мне нужно чтобы при нажатии в форме кнопки ок, выполнялся перезапуск скрипта


Название: Re: Перезагрузка ядра
Отправлено: blackjack от 08 Августа 2010, 11:53:53
затем что в ноденай все делается через базу или темпорари файлики, прямых посылок сигналов процесу ядра нет.


Название: Re: Перезагрузка ядра
Отправлено: ser970 от 08 Августа 2010, 12:35:27
затем что в ноденай все делается через базу или темпорари файлики, прямых посылок сигналов процесу ядра нет.
я падсталом.

по сути  ты хочешь свой скрипт передернуть через веб форму? или всетаки ядро нодени?


Название: Re: Перезагрузка ядра
Отправлено: blackjack от 08 Августа 2010, 17:23:51
делается перезагрузка ядра вот так
Код:
INSERT INTO dblogin SET mid=0,act=7,time=unix_timestamp();
рестарт
или вот так
Код:
INSERT INTO dblogin SET mid=0,act=1,time=unix_timestamp();
быстрый рестарт

а вы сер970 сидите и дальше пацталом


Название: Re: Перезагрузка ядра
Отправлено: ser970 от 09 Августа 2010, 09:00:53
делается перезагрузка ядра вот так
Код:
INSERT INTO dblogin SET mid=0,act=7,time=unix_timestamp();
рестарт
или вот так
Код:
INSERT INTO dblogin SET mid=0,act=1,time=unix_timestamp();
быстрый рестарт

а вы сер970 сидите и дальше пацталом

записть в мускул перегрузила ядро?~ кртуто . тогда сервер надо перегружать не reboot  а гдето ping -s ......  и так далее  или цыклом .

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


Название: Re: Перезагрузка ядра
Отправлено: Efendy от 09 Августа 2010, 09:02:16
рестарт организован так:

есть sh-скрипт, который запускает nodeny.pl. Nodeny.pl время от времени считывает данные из БД (как указано выше) и если в них видит сигнал перезагрузки, то выходит либо сразу (если такой сигнал) либо более корректно - дозаписывает всю инфу по трафику, затем выходит. Далее sh-скрипт снова запускает ядро. И так по кругу.


Название: Re: Перезагрузка ядра
Отправлено: Efendy от 09 Августа 2010, 09:03:50
записть в мускул перегрузила ядро?~ кртуто .
а чем плохо? Тем что тебе не нужен ssh в пути за тыщу км от своей сети, чтобы рестартануть ядро?


Название: Re: Перезагрузка ядра
Отправлено: Efendy от 09 Августа 2010, 09:07:06
Кстати, сигналы ядро принимает


Название: Re: Перезагрузка ядра
Отправлено: blackjack от 09 Августа 2010, 11:03:39
делается перезагрузка ядра вот так
Код:
INSERT INTO dblogin SET mid=0,act=7,time=unix_timestamp();
рестарт
или вот так
Код:
INSERT INTO dblogin SET mid=0,act=1,time=unix_timestamp();
быстрый рестарт

а вы сер970 сидите и дальше пацталом

записть в мускул перегрузила ядро?~ кртуто . тогда сервер надо перегружать не reboot  а гдето ping -s ......  и так далее  или цыклом .

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

ну вот можно так, если использовать тру юникс вей
Код:
kill -s HUP `ps ax | grep nodeny.pl | awk '{print $1}'`


Название: Re: Перезагрузка ядра
Отправлено: ser970 от 09 Августа 2010, 12:51:42
записть в мускул перегрузила ядро?~ кртуто .
а чем плохо? Тем что тебе не нужен ssh в пути за тыщу км от своей сети, чтобы рестартануть ядро?
да ничем .
ну не зхаписть то в мускул перегружает а скрипт.


Название: Re: Перезагрузка ядра
Отправлено: Cell от 09 Августа 2010, 13:09:42
Короче, что вы тут мучаетесь так сильно?
Берете стандартный nomake, чуть чуть подправляете запрос под ваши нужды (хоть выборку вообще из левой таблицы) и стандартным способом nomake делаете перезагрузку любого демона (или запуск скрипта)
ВСЕ, фигля тут вообще обсуждать?


Название: Re: Перезагрузка ядра
Отправлено: tramX от 09 Августа 2010, 20:13:16
Цитировать
по сути  ты хочешь свой скрипт передернуть через веб форму?
Да. Верней, нужно его запускать из web формы, чтобы при нажати на кнопку формы он запускался выполнял действия и остонавливался, при следующем вводе данных сново запускался


Название: Re: Перезагрузка ядра
Отправлено: Cell от 09 Августа 2010, 21:27:31
дык нудно определится какие действия и с какими привилегиями должен выполнять этот скрипт т.к. если достаточно прав вебсервера то все довольно банально решается, а если нужны права root - то см. мой пост выше.


Название: Re: Перезагрузка ядра
Отправлено: tramX от 10 Августа 2010, 04:24:38
Пример с картинками можно?


Название: Re: Перезагрузка ядра
Отправлено: Cell от 10 Августа 2010, 09:28:18
можно без картинок
Код:
.........
my $cmd = "/usr/local/nodeny/web/my_script.pl \"$F{main_cmd}\"";
my $result = `$cmd`;

if ($F{main_cmd}){
&OkMess("<span class=big>".$result."</span>",$go_back.$EOUT);
}else{
.......


Название: Re: Перезагрузка ядра
Отправлено: tramX от 11 Августа 2010, 17:22:47
Все равно не понял
Скрипт
my $host = "192.168.4.246";
my $user = 'admin';
my $pass = 'admin';
my $ssh = Net::SSH::Perl->new($host, protocol => '2,1', debug => 1);
$ssh->login($user, $pass);

$ssh->cmd("/ppp secret add name=name password=passwd service=any profile=default local=1.1.1.1 remote=2.2.2.2");

если запускаю из консоли то скрипт выполняется, если из веб то тишина



Название: Re: Перезагрузка ядра
Отправлено: elite от 11 Августа 2010, 18:51:16
а чем радиус не нравится? )


Название: Re: Перезагрузка ядра
Отправлено: tramX от 11 Августа 2010, 21:03:50
Тогда все mikrotik будут зависить от одного сервера


Название: Re: Перезагрузка ядра
Отправлено: elite от 11 Августа 2010, 21:10:27
Тогда все mikrotik будут зависить от одного сервера
сделай 2 сервера :)


Название: Re: Перезагрузка ядра
Отправлено: tramX от 11 Августа 2010, 22:30:16
Проще и дешевле 1 скрипт чем два сервера. Через браузер не получится выполнить такой скритп чтоб он добавил запись в микротик?


Название: Re: Перезагрузка ядра
Отправлено: elite от 12 Августа 2010, 08:30:09
Проще и дешевле 1 скрипт чем два сервера. Через браузер не получится выполнить такой скритп чтоб он добавил запись в микротик?
а толку? а шейпером кто управлять будет? тоже через браузер? )


Название: Re: Перезагрузка ядра
Отправлено: tramX от 12 Августа 2010, 13:09:30
в микротик будут создаваться правила шейпера


Название: Re: Перезагрузка ядра
Отправлено: VitalVas от 12 Августа 2010, 13:38:16
в микротик будут создаваться правила шейпера
переделай nofire.pl


Название: Re: Перезагрузка ядра
Отправлено: elite от 12 Августа 2010, 13:52:08
мдя.. кто какими извращениями только не занимается ;)


Название: Re: Перезагрузка ядра
Отправлено: stix от 12 Августа 2010, 20:37:23
мдя.. кто какими извращениями только не занимается ;)
омфг, микротик в 4 направления повесится  :o