The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"нужен совет"
Отправлено mesmeridze, 08-Фев-09 23:02 
Есть огромный access.log 56 млн. строк.
Есть справочник адресов сетей областей 274 строки всего 28 областей
Задача "разрезать" access.log так, чтобы сформировать файл для каждой из 28 областей.
Мой алгоритм, брать по очереди каждую строку из access.log извлекать оттуда адрес накладывать на него маску (взятую из файла областей) и сравнивать по очереди с каждой строкой справочника.
Проблема в том что скорость обработки одной строки около 2-3 секунд, что для файла лога такого объема абсолютно не годится.
Делаю таким скриптом:
#!/bin/sh

IPLIST=allip.sorted
MAP="structure.name.net.mask"
export IFS="
"

for IPSTRING in `cat $IPLIST`
do
        for MAPSTRING in `cat $MAP`
        do
                MAPNETWORK=`echo $MAPSTRING|awk '{print $2}'`
                MASK=`echo $MAPSTRING|awk '{print $3}'`
                IPNETWORK=`ipcalc -n \`echo ${IPSTRING}"/"${MASK}\`|sed s/NETWORK=//g`

                if [ ${MAPNETWORK} = ${IPNETWORK} ]
                then
                        MAPREGION=`echo $MAPSTRING|awk '{print $1}'`
                        echo $MAPREGION" "$MAPNETWORK" "$IPNETWORK" "$IPSTRING
                        break
                fi
        done
done
Если можете, подскажите, пожалуйста, как можно оптимизировать мою задачу?

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру