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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Выполнение скрипта при появлении сети. Как сделать?  (Прочитано 1215 раз)

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

Оффлайн sst78rus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Ubuntu 7.10 стоит на ноуте. Ноут часто включается в разные сети, и по lan и по wifi.
Есть ли возможность, где-то прописать, чтоб при появлении сети выполнялся некий скрипт, а при пропадании, еще один?

Надо допустим чтоб когда в домашней сети - монтировалась автоматом nfs папка, когда в случайной wi-fi сети, поднимался vpn и т.д.

Меня бы вполне устроило, чтоб просто по факту появления сети запускался скрипт. Устанавливать в какую сеть включили можно и в скрипте.

На ум приходит только грубое решение с скриптом, который крон дергает периодически. Но это грубо слишком и не красиво :)

Оффлайн foff4ik

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
if [ "`ping -c 2 сюда_вписуем_адрес_какойнить |grep 'bytes from'| wc -l`" = "2" ] ; then  сюда вписуем че надо сделать ;fi;
зафигачиваем енто дело в крон и радуемся

зы: если надо проверить отсутствие нитернета или связи с каким либо хостом меняем = на !=
« Последнее редактирование: 05 Марта 2008, 14:32:52 от foff4ik »

Оффлайн foff4ik

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
почти также можно и качество проверить сети т.е. там де пинг просто поставить побольше пакеты и побольше количество и проверять не на точное соотвецтвие а на > или < какогото порога.

Оффлайн sst78rus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Я ж говорю, решение это очевидное, но не красивое.  Кроме того, как мне кажется, лучше смотреть не на пинг, а на статус сетевого соединения. А активный интерфейс определять из вывода netstat (в какой интерфейс к шлюзу пакеты идут).

Но сеть меняется раз в сутки, а то и реже, а скрипт будет каждые 1-5 минут дергать. Мне казалось, что есть возможность вызывать скрипт по событию.

Оффлайн foff4ik

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
думаю хуже не станет от выполненья нескольких команд раз в несколько минут, событие то те всеравно както придется отслеживать вопрос в том какое ...

т.е. или ты дергаеш крон на проверку какого то флага

или переписуеш какоето прерывание на дополнительную логику в виде вызова скрипта ... (что думаю будет еще некрасивей ибо оно чаще выполняется)

Как вариант какимто образом просто отслеживать подключен ли провод  ... (думаю побыстрей чем пинги и нетстаты обработает)

« Последнее редактирование: 05 Марта 2008, 15:06:15 от foff4ik »

Оффлайн sst78rus

  • Автор темы
  • Новичок
  • *
  • Сообщений: 9
    • Просмотр профиля
Нашел такой вариант. Есть демон ifpugd, который как раз и следит за сетевыми интерфейсами. Я еще не очень с настройками его разобрался, может это где-то и в конфиге сделать можно.... Но пока сделал так: он при появлении/пропадании сети дергает скрипт
/etc/ifplugd/action.d/ifupdown

Для пробы добавил в него строки (echo "up"), вроде работает.
#!/bin/sh
set -e

case "$2" in
up)
        /sbin/ifup $1
        echo "up" >> /tmp/0.log
        ;;
down)
        /sbin/ifdown $1
        echo "down" >> /tmp/0.log
        ;;
esac

Оффлайн foff4ik

  • Новичок
  • *
  • Сообщений: 24
    • Просмотр профиля
спасибо буду иметь ввиду :)

 

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