predator 05.06.2010 00:10

How-to`sВыполнение скрипта при подключении сетевого провода

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

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while :
do
if < "x`mii-tool | grep "link ok"`" != "x" >
then
#echo "interface is enabled"
if << `ps a | grep login.hnt | wc -l` < 2 >>
then
/home/predator/bin/hnt.login &
#echo "login.hnt is not enabled";
fi
else
killall login.hnt
fi
sleep 5
done



Программа mii-tool из пакета net-tools (в gentoo) при запуске выдает строку:
user$ eth0: negotiated 100baseTx-FD flow-control, link ok
если коннект есть и:
user$ eth0: no link
если его нету

Логика такова, что если провод втыкнут, но программа авторизации не запущена, то она запускается. А если сеть исчезает, то она убивается за ненадобностью.


Тэги: bash howto ifconfig mii-tool net-tools network networking костыль
+ 4 -
Похожие Поделиться

Username 05.06.2010 00:18 #
Добавь тег "костыль" :-)
Budda40 05.06.2010 00:24 #
вопрос от чайника, а есть ли такой скрипт чтоб подключал к инету при запуске системы, а то надоело самому пароль вводить?
predator 05.06.2010 00:32 #
какой дистр? программа для ввода пароля консольная?
predator 05.06.2010 00:32 #
1) какой дистр?
2) программа для ввода пароля консольная?
mhspace 05.06.2010 00:36 #
ifupdown
Budda40 05.06.2010 00:43 #
Ubuntu 10.04, пароль надо вводить в брелоке.
mhspace 05.06.2010 00:46 #
В ubuntu 10.04 вообще вроде как NetworkManager...
Budda40 05.06.2010 00:48 #
не спорю, но когда тыкаешь в иконку для подключения вылазиет окошко брелока и спрашивает мой пароль от системы.
mhspace 05.06.2010 00:50 #
Но если снести NM, поставить ifupdown (хотя, вроде тоже стоит по дефолту), настроить нет им, прописать пароли в chap-secrets, и будет вам профит....
Budda40 05.06.2010 00:53 #
А можно чуть по подробнее?
mhspace 05.06.2010 00:55 #
эмм, ну тогда начнём с того, какое у вас интернет-соединение.
mhspace 05.06.2010 00:55 #
В конце должен был стоять "?"
Budda40 05.06.2010 00:57 #
vpn pptp (ufanet)
mhspace 05.06.2010 01:04 #
sudo pptpsetup --create ufanet --server IPСЕРВЕРА --username USERNAME --password PASSWORD

IPСЕРВЕРА, USERNAME, PASSWORD заменить на соответсвующие вашему провайдеру\аккаунту.

Затем в файле /etc/network/interfaces добавьте следующее:

auto ppp0
iface ppp0 inet ppp
provider ufanet

Ну вот и почти всё. Это ПОЧТИ рабочий вариант. Остались маршруты. Я их прописывал через костыль. Если интересует как, пишите...
Budda40 05.06.2010 01:11 #
Думаю должен быть более элегантный способ сделать это. А вы просто предлагаете перенастроить подключение с инету. Нужен скрипт который бы при старте тыкал по иконке NM выбирал уфанет, а после вбивал мой пасс в брелоке, либо сделал так чтоб брелок не спрашивал пароль.
mhspace 05.06.2010 01:13 #
Ну да, я ведь сразу предупредил об этом...
Насчёт элегантного, хз...
mhspace 05.06.2010 01:15 #
Простите за дубль, привет, predator.
mhspace 05.06.2010 01:14 #
Ну да, я ведь сразу предупредил об этом...
Насчёт элегантного, хз...
predator 05.06.2010 01:24 #
может нужно добавить пользователя в какую-нибудь группу (типа admin)?
predator 05.06.2010 01:31 #
в NM ври создании подключения внизу есть галочка "Available for all users". То?
lockie 05.06.2010 01:33 #
А чем это принципиально отличается от вышеописанного способа, подключающего интернет при загрузке системы? Маршруты, по ходу дела, можно без костылестроения настроить, были, знаем.

> либо сделал так чтоб брелок не спрашивал пароль
У этого самого брелка была, вроде, такая пимпа - "запомнить пароль навсегда".

> элегантный
NM - это НЕ элегантно, поверь на слово.
mhspace 05.06.2010 01:36 #
без костылей - как? Опишите ваш способ, пожалуйста...
lockie 05.06.2010 12:51 #
У pppd есть опции defaultroute и nodefaultroute. Соответственно, план такой - прописываем маршруты на локальные ресурсы заранее и добавляем в конфиг pppd опцию defaultroute. При установлении соединения через vpn pppd добавит в таблицу маршрутов умолчальный маршрут, пускающий весь трафик, не попавший в другие маршруты, через себя.
mhspace 06.06.2010 03:29 #
А, так, да? Ну у меня нет вообще через двойное pptp соединение. Впринципе этот способ сработает со вторым соединением, которое с интернетом, но вот первое, которое соединяет с сетью провайдера костыль придётся оставить. Спасибо за информацию, попробую...
gwk 05.06.2010 01:53 #
удалить в брелке все контейнеры и создать default без пароля
или
dfx 05.06.2010 08:55 #
Когда спросит пароль, в этом окошке есть ниже ещё свёрнутые параметры - разверни их. и поставь там галочку "Разблокировать брелок при входе в систему" или как-то так.
Budda40 05.06.2010 11:35 #
Не было ни каких свернутых параметров.
Budda40 05.06.2010 11:57 #
Ответ найден, он оказался пост до неприличия:
1) Приложения - Стандартные - Пароли и ключи шифрования. Там выбираем "default" (это у меня, если вы меняли название папки, то у вас название будет другим) и удалаям эту запись.
2)Нажимаем на подключение спросят пароль от cети - вводим. Затем будет окно ввода пароля на брелок, оставляем поля пустыми, нажимаем ОК. Затем "использовать небезопасное чтото-там".
bosha 05.06.2010 12:10 #
Вот это костыль о_О


aptitude install ifplugd
man ifplugd

vyazovoi 05.06.2010 16:22 #
Ну а ifplugd не один фиг? Тоже ненужный костыль.
Не, ну конечно в ifplugd алгоритм отслеживания линка явно быстрее, чем mii-tool и grep, с другой стороны - а не пофик ли? Если интервал запуска этого скрипта будет раз в минуту - система не пострадает.
bosha 05.06.2010 16:42 #
Это не костыль, а более лаконичное и, имхо, правильное решение.
deFINE 06.06.2010 20:44 #
В убунту оно работает только с рутовскими правами.
deFINE 06.06.2010 23:25 #
Использовал ifplugstatus для этих же целей.
predator 06.06.2010 22:35 #
Оно везде работает только с рутовскими правами и на то есть причины. Т.к. кроме простого определения подключен ли провод к сети, оно может эту сеть отключить.