Как я могу обрабатывать много файлов журнала как один виртуальный файл в Perl?

У меня есть журналы множественного доступа в каталоге журналов, следуя приведенному ниже соглашению об именах:

access.log.1284642120
access.log.1284687600
access.log.1284843260

В основном журналы "вращаются" по Apache в день, чтобы их можно было отсортировать по порядку.

Я пытаюсь «читать их один за другим», чтобы их можно было рассматривать как один файл журнала.

my @logs = glob('logs/access.log.*');

Вышеприведенный код удалит все журналы, но я не уверен:

  • В каком порядке будут организованы журналы, в алфавитном порядке?
  • если я хочу проверить «последнее время доступа с уникального IP-адреса», как я могу это сделать?

У меня есть сценарий Perl, который может читать единый журнал доступа и легко это проверять (мой алгоритм состоит в том, чтобы иметь большой хэш, который использует IP-адрес в качестве ключа и время доступа в качестве значения, и просто продолжайте вводить в него пары ключ / значение .. .). Но я не хочу просто объединять все файлы доступа в один временный файл только для этого процесса.

Есть предложения? Заранее большое спасибо.

5
задан Michael Mao 18 September 2010 в 12:50
поделиться