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

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-04 13:28:13

Доброго времени суток всем!
Помогите написать bash скрипт, который мог бы определять на каком интерфейсе подключен определенный IP адресс и соотв. kill этот интерфейс.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

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

Непрочитанное сообщение zg » 2008-10-04 13:44:26

B@cZ писал(а): и соотв. kill этот интерфейс.
гм.. впн сервер или как?

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

man awk
man grep
man ifconfig

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-04 21:40:23

zg писал(а):
B@cZ писал(а): и соотв. kill этот интерфейс.
гм.. впн сервер или как?

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

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

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

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

Непрочитанное сообщение zg » 2008-10-05 17:56:03

когда-то для таких целей вполне хватило awk

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-06 11:28:24

zg писал(а):когда-то для таких целей вполне хватило awk
Не подскажешь в данном случае как??

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-06 11:44:50

Народ, что никто не знает как в MPD отключить пользователю его текущий сеанс?? Не поверю :pardon:

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

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

Непрочитанное сообщение zg » 2008-10-06 12:26:35

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, можно выбрать нужную, после спокойно убить.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

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

Непрочитанное сообщение schizoid » 2008-10-06 13:23:23

а еще у мпд есть вебморда....можна через нее...
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-06 13:57:25

schizoid писал(а):а еще у мпд есть вебморда....можна через нее...
Да дело в том, что я написал свою веб-морду, которая работает с радиусом нужным мне образом, вот ищу как при удалении юзера отключать его, если он активен.

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

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

Непрочитанное сообщение schizoid » 2008-10-06 14:33:32

дроп фаером 1723-й порт? :)
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-06 17:34:11

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

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

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

Непрочитанное сообщение LMik » 2008-10-06 17:38:03

делаю ifconfig ng* -alias, отваливаются вроде.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-07 10:36:51

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

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

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

Непрочитанное сообщение LMik » 2008-10-07 11:20:05

B@cZ писал(а):
LMik писал(а):делаю ifconfig ng* -alias, отваливаются вроде.
Делаю infconfig ng* kill, тоже отваливаются.
Дак для этого нужно смотреть на каком интерфейсе нужный мне клиент. А мне нуно чтобы по IP выбирался интерфейс и тогда я его kill.
Скрипты выше вроде выдают ифейс по ипу.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-07 12:38:10

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

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

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

Непрочитанное сообщение LMik » 2008-10-07 16:20:08

Я вобще не постил скрпитов ;)

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

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

ifconfig | grep  -B 1 -F "IP " | grep ng | cut -d : -f 1
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

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

Непрочитанное сообщение zg » 2008-10-07 17:37:26

LMik писал(а):

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

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

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-08 17:54:42

zg писал(а):
LMik писал(а):

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

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

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

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

Непрочитанное сообщение zg » 2008-10-08 18:33:25

B@cZ писал(а):Как это происходит если килльнуть mpd из процессов.
а что мешает проверить?

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

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

Непрочитанное сообщение LMik » 2008-10-08 18:52:05

Оно висит некоторое время и отваливается. Других способов нет. Если мпд4+ моно там по**ться с телнетом или веб ифейсом.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
schizoid
подполковник
Сообщения: 3228
Зарегистрирован: 2007-03-03 17:32:31
Откуда: Украина, Чернигов
Контактная информация:

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

Непрочитанное сообщение schizoid » 2008-10-09 9:07:17

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

ifconfig ng4 down
ядерный взрыв...смертельно красиво...жаль, что не вечно...

Аватара пользователя
LMik
капитан
Сообщения: 1852
Зарегистрирован: 2007-07-17 9:14:39
Откуда: МО
Контактная информация:

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

Непрочитанное сообщение LMik » 2008-10-09 9:29:46

schizoid писал(а):

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

ifconfig ng4 down
насколько помню mpd потом не может с этим ифейсом работать, даже если ему вроде up сделать.
BSD... Join the dark side.
Виpус детям не игpушка, не товаpищ и не дpуг!

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-09 11:19:13

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

Аватара пользователя
B@cZ
ефрейтор
Сообщения: 57
Зарегистрирован: 2008-09-18 1:18:34
Откуда: Kharkov
Контактная информация:

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

Непрочитанное сообщение B@cZ » 2008-10-13 18:50:41

Гость писал(а):брутальный способ: ngctl shutdown ng4:

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

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