Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: переключать скриптом таблицу маршрутизации  (Прочитано 820 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Wade

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
Доброго дня всем...

У меня тут дилемма - может посоветуете что... Мне нужно, чтобы скрипт, доступный из интернета, выполнял действия с route, в частности удалял дефолтный гейтвей и ставил новый в том случае, если скрипт после выполнения получает определенный ответ...

Насколько я понял, решения два:
1) В лоб: разрешить апачевому юзеру www-data выполнять этот скрипт под рутом через sudoers.. у меня не получилось... может быть самому скрипту нужно назначить какие-то особые права?
2) дать рутовый доступ crond, крону прописать каждую секунду проверять текстовый файл, который скрипт будет оставлять в качестве сигнала и ждать... скрипт крона будет этот текстовик проверять, переключать route, и результат переключения писать в файл, апачевый скрипт будет это анализировать. Но как-то мне второй вариант кажется кривым... не знаю даже почему.

Может подскажете еще какое-то решение? Или по первому подскажите как реализовать, мне он больше нравится.

Спасибо.

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
первый способ опасен, тк давать пользователям права рута вообще не "юниксвей"
лично я бы написал скрипт, который проверял бы в интернетах некий "флаг" и в зависимости от этого изменял желаемое. крон умеет выполнять задачи от рута и особых прав ему для этого не нужно. скрипт естесственно заносится в crontab...
а вообще опишите проблему подробно, может есть красивый вариант решения, а не костыли
« Последнее редактирование: 05 Июля 2010, 16:00:58 от Владимир Николаевич »

Оффлайн Wade

  • Автор темы
  • Новичок
  • *
  • Сообщений: 21
    • Просмотр профиля
глобальная проблема: яндекс разрешает с одного ip тысячу обращений в день с одного Ip к своему сервису яндекс.xml . У меня есть виртуальный сервер с несколькими ip (четыре пригодных). виртуализация - virtuozzo. Если я делаю route del default; route add default gw xxx.xxx.xxx.xxx , то я получаю чистый исходящий ip (каким-то образом в этой виртуализации переключается все так здорово и быстро), и могу сделать еще обращения.

Флагом в данном случае может выступать оставленный скриптом текстовик (скрипты на питоне). Однако тут "костыльность" диктуется тем, что мне, при обращении к серверу со стороны нужно тут же отдать то, что вернул яндекс, даже если лимит закончился, или какой-нибудь еррор, если лимиты всех ипов исчерпаны.

Мне видится сделать это через систему ожиданий.
1) Скрипт работает сам, до тех пор, пока нет необходимости в переключении
2) Если необходимость в переключении есть, скрипт оставляет файл-флаг, а сам уходит в ожидание с периодической проверкой
3) Скрипт по крону проверяет наличие флага и израсходованность ip (эта информация тоже где-то в текстовике хранится)
4) Скрипт по крону передают в файл-флаг информацию об успешности переключения, после чего интернетный скрипт в очередном цикле разблокируется и возвращает необходимое, или отдает ошибку, если привышен лимит по всем ip

Как-то так.

 

Страница сгенерирована за 0.027 секунд. Запросов: 19.