Назад | Перейти на главную страницу

сортировка и сохранение данных об использовании, собранных iptables

Я использую ограничение доступа по MAC-адресу iptables. Я перечислил MAC-идентификаторы пользователей, которым я хочу разрешить доступ, и оставил отдых. И когда я бегу iptables -vL он показывает все идентификаторы MAC и их использование: переданные пакеты, данные в байтах. Итак, мои вопросы:

  1. Можно ли сделать так, чтобы он показывал использование данных в мегабайтах?
  2. Могу ли я отсортировать его так, чтобы MAC-идентификаторы активных пользователей были наверху?
  3. И, наконец, могу ли я сохранить данные на диск, может быть, в базу данных, чтобы они могли накопиться и пережить перезагрузки?

AWK - ваш друг. http://en.wikipedia.org/wiki/AWK

Ответ # 1

Какой ваш iptables --version?

По моему, iptables -vL автоматически конвертирует байты в килобайты (суффикс K) или мегабайты (суффикс M).

Ответ # 2

Использовать iptables -x подключен к sort, например iptables -xvL $CHAIN | sort -rn -k 2

Ответ # 3

Передайте вывод вышеуказанных команд сценарию, который будет выполнять вставку в базу данных.

Вы можете дополнительно отфильтровать вывод ответа №2, используя awk '$1 ~ /[0-9]+/' чтобы удалить заголовки столбцов, и awk '$1 > 1000000' чтобы увидеть только те значения, которые превышают 1'000'000 байт.


Обработка вывода в формат CSV

iptables -xvnL $CHAIN | awk -v min=$MINIMUM '$1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'

Или, если вам нужен заголовок столбца CSV:

iptables -xvnL $CHAIN | awk -v min=$MINIMUM 'BEGIN {print "Bytes,MAC"} $1 ~ /[0-9]+/ && $2 >= min {print $2 "," $11}'