xunes 0 Опубликовано: 2013-01-11 18:48:30 Share Опубликовано: 2013-01-11 18:48:30 Доброго времени суток!! Я столкнулся с проблемой настройки Старгейзера в связке с несколькими микротиками (хочется чтобы была одна база и несколько серверов доступа в разных сетях) не могу понять в чем проблема, не работают скрипты GetNasIP и GetNasType. я так понимаю они определяют IP наса из таблиц ubilling'а. Если прописать в скриптах принудительно IP адрес наса - то все работает. А если пробывать через скрипты определять автоматически - то ничего не происходит. Настраивал по мануалам http://wiki.ubilling...php?id=microtik на серве стоит Debian с которым я не сильно в ладах, может кто сталкивался с этими скриптами-определяльщиками IP ??? скрипты находтся в архиве UB presets/stargazer/GetNasIP и presets/stargazer/GetNasType Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2013-01-11 18:58:40 Share Опубліковано: 2013-01-11 18:58:40 скрипты находтся в архиве UB presets/stargazer/GetNasIP и presets/stargazer/GetNasType Покажите в каком контексте пытаетесь их использовать в OnConnect/OnDisconnect Ссылка на сообщение Поделиться на других сайтах
xunes 0 Опубліковано: 2013-01-11 19:04:27 Автор Share Опубліковано: 2013-01-11 19:04:27 скрипт OnConnect должен отдавать команду по ssh микортику чтото типа /etc/stargazer/mk_push ${NASIP} "/ip firewall address-list add address=${IP} disabled=no list=ALLOW comment=${LOGIN}" где ${NASIP} должно определяться через скрипты GetNasIp и GetNasType а этого определения не происходит. если в строку команды микротика вручную (без скрипта) прописать IP то все работает Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2013-01-11 19:07:56 Share Опубліковано: 2013-01-11 19:07:56 скрипт OnConnect должен отдавать команду по ssh микортику чтото типа Я типа в курсе как это работает Ну сделайте в OnConnect что-то типа NASIP=`/etc/stargazer/GetNasIP ${LOGIN}` echo ${NASIP} >> /var/log/nas.log вот и увидите чего оно вам возвращает. Ну либо что еще проще просто позапускайте руками из консоли /etc/stargazer/GetNasIP [логин_существующего_абонента] Естественно для подсети к которой пренадлежит абонент должен быть добавлен NAS соответствующего типа, чтобы оно в обратную сторону по логину могло айпишку NAS-а выдернуть. Есть подозрения, что собака могла порыться банально в шабанге. Ссылка на сообщение Поделиться на других сайтах
xunes 0 Опубліковано: 2013-01-11 19:13:27 Автор Share Опубліковано: 2013-01-11 19:13:27 файл /nas.log возвращает пробел или или чтото типа того - размер файла 1 байт а в нутри ничего Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2013-01-11 19:15:04 Share Опубліковано: 2013-01-11 19:15:04 Руками если позапускать - тоже пустота? А то вот, как-бы работает [nightfly@jesus ~/dev/ubilling/]$ /etc/stargazer/GetNasIP testuser 10.10.15.20 [nightfly@jesus ~/dev/ubilling/]$ Хотя да, я был прав - после шабанга интерпретер, по умолчанию там точно BSD-шный воткнут. Измените его для начала. И удостоверьтесь в том, что скрипто имеет права на выполнение и в /etc/stargazer/config указаны адекватные параметры БД. Ссылка на сообщение Поделиться на других сайтах
xunes 0 Опубліковано: 2013-01-11 19:19:39 Автор Share Опубліковано: 2013-01-11 19:19:39 подозреваю чтото в файлах GetNasIP и GetNasType а файлы такие и должы быть ??? или в них нужно чтото поправить? #!/usr/local/bin/php <?php $login=$argv[1]; $config=parse_ini_file(dirname(__FILE__)."/config"); $link = mysql_connect($config['host'], $config['username'], $config['password']); mysql_select_db($config['database']); $ipq='SELECT `IP` FROM `users` WHERE `login`="'.$login.'"'; $ip=mysql_query($ipq); while ($line2 = mysql_fetch_array($ip, MYSQL_ASSOC)) { foreach($line2 as $ipval) { $nasq='select `nas`.`nasip` from `nethosts` join `nas` on (`nas`.`netid` = `nethosts`.`netid`) where `nethosts`.`ip` = "'.$ipval.'"'; $nas=mysql_query($nasq); while ($line3 = mysql_fetch_array($nas, MYSQL_ASSOC)) { foreach($line3 as $nasip) { print($nasip); } } }.... } ?> если запустить ручками то пишет "плохой интерпретатор: Отказано в доступе" проверил папку /usr/local/bin/php - её небыло - создал - тоже самое Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2013-01-11 19:24:33 Share Опубліковано: 2013-01-11 19:24:33 а файлы такие и должы быть ??? или в них нужно чтото поправить? да если запустить ручками то пишет "плохой интерпретатор: Отказано в доступе" ну вот - понятным же языком написано в чем проблема. Как я и пророчил - в интерпретере. проверил папку /usr/local/bin/php - её небыло - создал - тоже самое это не папка, это путь к php собранному к слову с поддержкой CLI. Подсуньте туда чего вам говорит whereis php что-ли. Ссылка на сообщение Поделиться на других сайтах
xunes 0 Опубліковано: 2013-01-11 19:30:49 Автор Share Опубліковано: 2013-01-11 19:30:49 заработало! спасбо! сам бы неасилил!! Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас