Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Awk представляет собой язык программирования, предназначенный для работы с таблицами. Несмотря на то что язык этот не самый простой, в нашем случае awk вполне подходит под определение простой утилиты. Все дело в том, как awk обрабатывает входной поток: каждая строка разбивается на поля, значения которых присваиваются внутренним переменным awk $1, $2 и т.д. по числу полей. Разделителем полей по умолчанию служат пробелы или табуляция. Воспользовавшись этим свойством awk, можно легко оставить в каждой строке только первое и пятое поле (имя пользователя и адрес), напечатав их встроенной функцией printf (значение пробела в начале строки будет пояснено позже).

Вмешивается в эту идиллическую картину только имя ресурса, которое может содержать пробелы (как в примере выше) и с точки зрения awk состоять из нескольких полей. Поскольку в выводе smbstatus имя ресурса занимает фиксированное число символов, его можно удалить с помощью colrm, параметрами которой служат номера первой и последней колонки текста, которые нужно удалить (colrm каждый символ в строке воспринимает как отдельную колонку).

Sort и uniq в отдельном пояснении не нуждаются, их назначение полностью понятно из названия, а вот sed более интересен. Это потоковый редактор (Stream EDitor), который помимо всего прочего может заменять соответствующие заданному регулярному выражению подстроки. В приведенном примере это встроенная команда sed 's' (substitute), регулярное выражение «[()]» соответствует символам «(« и »)», которые заменяются на «», то есть просто удаляются. Ключ «g» указывает заменять все символы в строке, попадающие под регулярное выражение, а не только первый.

Полученных данных вполне достаточно для первоначальной настройки системы учета трафика, для динамической переконфигурации потребуется информация в формате «+/- user address». Далеко не самое изящное решение, но, очевидно, в данной ситуации самое простое – сохранять информацию о текущих подключениях, а затем через некоторый промежуток времени сравнивать со вновь полученной информацией. Очень подходит для этой цели diff. Весь скрипт выглядит так (файл count_user):

#!/bin/sh

 

count_list="samba pppd"

sleeptime=20

TMPDIR="/var/tmp"

 

export TMPDIR

tmpfile=`mktemp -q -u -t count` || exit 1

 

cleanup ()

{

    rm -f $tmpfile.?

}

 

trap : 1

trap : 2

trap : 15


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100