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

Как сделать выборку или что-то подобное?

Добавлено: 2009-11-30 2:01:18
levantuev
Есть пользователи, которые подключаются к серверу через mpd4
Vasya(192.168.11.3)
Masha(192.168.11.4)
Petya(192.168.11.5)

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

ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396
        inet 192.168.11.1 --> 192.168.11.4 netmask 0xffffffff

Допустим пользователи "Vasya" и "Petya" на данный момент не подключены, как вывести на экран сообщение о пользователях кто сейчас НЕ online ?
т.е типа такогов вида:
Vasya - offline
Petya - offline

Скрипт должен быть написан на perl или sh, методы выполнения любые ping, netstat, ifconfig и.т.п пожалуйста выручайте...

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-01 11:29:26
schizoid
radius используется?
если да, то

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

select * from radacct where AcctStopTime='0000-00-00' AND AcctStartTime>=CURRENT_DATE()
покажет подключенных сейчас пользователей. остальные соответственно не подключены.

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-01 12:06:30
levantuev
Радиуса нету, в чем проблема и заключается, то что нужно показывать именно кто Offline

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-01 12:43:07
schizoid
а в чем клиенты тогда? если в мпд.секрет, то как вариант такое решение:
1. получить все текущие подключения, например

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

netstat -rn| grep ng|grep -v Routing|  awk '{print $1}'
2. дальше из списка всех пользователей исключить подключившихся

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-01 15:50:21
levantuev
Ну я могу же тупо вручную прописать в качестве переменной
vasya=192.168.11.2
petya=192.168.11.3

вопрос как эту проверку и отделение (кто оффлайн) организовать через

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

netstat -rn| grep ng|grep -v Routing|  awk '{print $1}'

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-02 11:05:30
levantuev
Тут кто-то отвечал? Мне уведомление пришло :)

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-02 13:33:59
schizoid
я удалил сообщение. предложил вариант , потом проверил - не рабочий. удалил.
собсна все исходные данные у вас есть.
дальше подключайте моск

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-02 13:42:03
levantuev
ага сделал:

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

netstat -rn | grep ng | grep -v Routing | awk '{print $1}' > file2.txt

/usr/bin/diff -b baza.userov file2.txt | grep 192 | awk '{print $2}' > offline.txt

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-02 17:07:15
Alex Keda
грепу можно список в файле скормить, вообще-то.

Re: Как сделать выборку или что-то подобное?

Добавлено: 2009-12-03 13:07:10
schizoid
что-то с грепом у мну не получилось с исключением. по-этому собсна и удалил пост... типа флаг -v -f file