Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Баш скрипт обработки логов net-acct  (Прочитано 1081 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
Баш скрипт обработки логов net-acct
« : 04 Декабря 2011, 02:13:27 »
Собственно сам скрипт:

#!/bin/sh

Gb="1024"
N="0"

IP2="`grep 192.168.1.2 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}'`"
IP3="`grep 192.168.1.3 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}'`"
IP4="`grep 192.168.1.4 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}'`"

if (($IP2 > $N));
        then
                Tr2=$(($IP2 / $Gb));
                        echo $Tr2 >/var/www/iptraf/2;
                else
        echo "0" >/var/www/iptraf/2;
fi
if (($IP3 > $N));
        then
                Tr3=$(($IP2 / $Gb));
                        echo $Tr3 >/var/www/iptraf/3;
                else
        echo "0" >/var/www/iptraf/3;
fi
if (($IP4 > $N));
        then
                Tr4=$(($IP4 / $Gb));
                        echo $Tr4 >/var/www/iptraf/4;
                else
        echo "0" >/var/www/iptraf/4;
fi

Не вносит изменения в файл, а именно echo $Tr2 >/var/www/iptraf/2;
« Последнее редактирование: 04 Декабря 2011, 17:41:08 от ivsatel »

Axa-Ru

  • Гость
grep 192.168.1.2 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}Что по задумке это должно делать?

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
grep "192\.168\.1\.2" /var/log/net-acct/net-acct.logпокажи
Wars ~.o

Оффлайн ivsatel

  • Автор темы
  • Активист
  • *
  • Сообщений: 336
    • Просмотр профиля
grep 192.168.1.2 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}Что по задумке это должно делать?
Это сложение (суммирование) седьмого столбца.

Пользователь решил продолжить мысль 04 Декабря 2011, 11:14:13:
grep "192\.168\.1\.2" /var/log/net-acct/net-acct.logпокажи
Это немного не то. Нужно ответ одной цифрой. Или это на предмет отрабатывает или нет? То скажу что отрабатывает нормально.
(Нажмите, чтобы показать/скрыть)

Вообще идея такова:
Выдергивание общей суммы для нужного адреса.
Сумму разделить на 1024
Запись этой суммы в файл (файл для каждого адреса свой)

Пользователь решил продолжить мысль 04 Декабря 2011, 17:38:29:
Вот так работает:
#!/bin/sh

Gb="1024"
N="0"

IP2="`grep 192.168.1.2 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}'`"
IP3="`grep 192.168.1.3 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}'`"
IP4="`grep 192.168.1.4 /var/log/net-acct/net-acct.log | awk '{s += $7} END {print s}'`"

if [ $IP2 > $N ];
        then
Tr2=`expr $IP2 / $Gb`;
echo $Tr2 >/var/www/iptraf/2;
                else
        echo $N >/var/www/iptraf/2;
fi

if [ $IP3 > $N ];
        then
Tr3=`expr $IP3 / $Gb`;
echo $Tr3 >/var/www/iptraf/3;
                else
        echo $N >/var/www/iptraf/3;
fi

if [ $IP4 > $N ];
        then
Tr4=`expr $IP4 / $Gb`;
echo $Tr4 >/var/www/iptraf/4;
                else
        echo $N >/var/www/iptraf/4;
fi
« Последнее редактирование: 04 Декабря 2011, 21:22:31 от ivsatel »

 

Страница сгенерирована за 0.04 секунд. Запросов: 25.