Страница 1 из 2

Скрипт kill'а интерфейсов

Добавлено: 2008-10-04 13:28:13
B@cZ
Доброго времени суток всем!
Помогите написать bash скрипт, который мог бы определять на каком интерфейсе подключен определенный IP адресс и соотв. kill этот интерфейс.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-04 13:44:26
zg
B@cZ писал(а): и соотв. kill этот интерфейс.
гм.. впн сервер или как?

Код: Выделить всё

man awk
man grep
man ifconfig

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-04 21:40:23
B@cZ
zg писал(а):
B@cZ писал(а): и соотв. kill этот интерфейс.
гм.. впн сервер или как?

Код: Выделить всё

man awk
man grep
man ifconfig
Ага, он самый. mpd, куча интерфейсов ng*... Хотелось бы чтобы можно как-то киллать интерфейс по определенному IP, так то могу: ifconfig ng0 kill, к примеру, но для этого нужно смотреть в ifconfig на каком интерфейсе нужный мне IP.
Читал маны, не нашел нужное, возможно знаний энглиша не хватает, прошу помощи, хотябы не сам скрипт, а как килльнуть интерфейс по IP.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-05 17:56:03
zg
когда-то для таких целей вполне хватило awk

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 11:28:24
B@cZ
zg писал(а):когда-то для таких целей вполне хватило awk
Не подскажешь в данном случае как??

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 11:44:50
B@cZ
Народ, что никто не знает как в MPD отключить пользователю его текущий сеанс?? Не поверю :pardon:

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 12:26:35
zg
B@cZ писал(а):Не подскажешь в данном случае как??


Например так

Код: Выделить всё

ifconfig -a | grep -Eo '(^[a-z]+[0-9])|(inet [0-9\.]+ netmask [a-f0-9x\.]+)' | awk '{if ($2 == "") mask=$1; else if ($1 == "inet") print mask, $2, $4;}'
А дальше совсем просто - зная имя сетёвки по ip, можно выбрать нужную, после спокойно убить.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 13:23:23
schizoid
а еще у мпд есть вебморда....можна через нее...

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 13:57:25
B@cZ
schizoid писал(а):а еще у мпд есть вебморда....можна через нее...
Да дело в том, что я написал свою веб-морду, которая работает с радиусом нужным мне образом, вот ищу как при удалении юзера отключать его, если он активен.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 14:33:32
schizoid
дроп фаером 1723-й порт? :)

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 17:34:11
B@cZ
schizoid писал(а):дроп фаером 1723-й порт? :)
Должен же быть цивилизованный способ :)
А если в табле радиуса изменить статус активной сессии на "Отключен администратором" (не помню как называется, но помню что такой был), что будет?

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-06 17:38:03
LMik
делаю ifconfig ng* -alias, отваливаются вроде.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-07 10:36:51
B@cZ
LMik писал(а):делаю ifconfig ng* -alias, отваливаются вроде.
Делаю infconfig ng* kill, тоже отваливаются.
Дак для этого нужно смотреть на каком интерфейсе нужный мне клиент. А мне нуно чтобы по IP выбирался интерфейс и тогда я его kill.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-07 11:20:05
LMik
B@cZ писал(а):
LMik писал(а):делаю ifconfig ng* -alias, отваливаются вроде.
Делаю infconfig ng* kill, тоже отваливаются.
Дак для этого нужно смотреть на каком интерфейсе нужный мне клиент. А мне нуно чтобы по IP выбирался интерфейс и тогда я его kill.
Скрипты выше вроде выдают ифейс по ипу.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-07 12:38:10
B@cZ
LMik писал(а):
B@cZ писал(а):
LMik писал(а):делаю ifconfig ng* -alias, отваливаются вроде.
Делаю infconfig ng* kill, тоже отваливаются.
Дак для этого нужно смотреть на каком интерфейсе нужный мне клиент. А мне нуно чтобы по IP выбирался интерфейс и тогда я его kill.
Скрипты выше вроде выдают ифейс по ипу.
Который zg запостил или ты? Сорри, я щас на работе, нету возможности проверить.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-07 16:20:08
LMik
Я вобще не постил скрпитов ;)

Исправлюсь.
вроде как то так

Код: Выделить всё

ifconfig | grep  -B 1 -F "IP " | grep ng | cut -d : -f 1

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-07 17:37:26
zg
LMik писал(а):

Код: Выделить всё

ifconfig | grep  -B 1 -F "IP " | grep ng | cut -d : -f 1
на алиасах прогорит, на одной сетёвке может быть не один ip, для нетграфа может и подойдёт, но на физические нет

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-08 17:54:42
B@cZ
zg писал(а):
LMik писал(а):

Код: Выделить всё

ifconfig | grep  -B 1 -F "IP " | grep ng | cut -d : -f 1
на алиасах прогорит, на одной сетёвке может быть не один ip, для нетграфа может и подойдёт, но на физические нет
Спасибо, данная командочка то что нужно. Возникла другая проблема. Интерфейс нахожу, когда выполняю команду: ifconfig ng* kill или ifconfig ng* -alias, интерфейс освобождается но соединение у пользователя продолжает висеть (еств. без активности на нем), пока он сам его не отключит. Может можно все-таки какой-то коммандой mpd отключать соединение пользователя на интерфейсе мгновенно?
Как это происходит если килльнуть mpd из процессов.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-08 18:33:25
zg
B@cZ писал(а):Как это происходит если килльнуть mpd из процессов.
а что мешает проверить?

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-08 18:52:05
LMik
Оно висит некоторое время и отваливается. Других способов нет. Если мпд4+ моно там по**ться с телнетом или веб ифейсом.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-09 9:07:17
schizoid

Код: Выделить всё

ifconfig ng4 down

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-09 9:29:46
LMik
schizoid писал(а):

Код: Выделить всё

ifconfig ng4 down
насколько помню mpd потом не может с этим ифейсом работать, даже если ему вроде up сделать.

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-09 11:19:13
B@cZ
LMik писал(а):
schizoid писал(а):

Код: Выделить всё

ifconfig ng4 down
насколько помню mpd потом не может с этим ифейсом работать, даже если ему вроде up сделать.
Все верно, пробывал и down делать, может оно и то, но интерфейс уходит действительно в down =)

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-10 20:06:54
Гость
брутальный способ: ngctl shutdown ng4:

но лучше, конечно, через консольку mpd.

а так, клонируемые интерфейсы (список - ifconfig -C) убиваются по ifconfig <ifname> destroy

Re: Скрипт kill'а интерфейсов

Добавлено: 2008-10-13 18:50:41
B@cZ
Гость писал(а):брутальный способ: ngctl shutdown ng4:

но лучше, конечно, через консольку mpd.

а так, клонируемые интерфейсы (список - ifconfig -C) убиваются по ifconfig <ifname> destroy
Если mpd запущен как служба, можно как-то через консоль это делать? Если да, то напиши, пожалуйста, как.