Как получить сводку access_log по goaccess, начиная с определенной даты?

В настоящее время я держу 6 недель apache access_log. Если я создаю сводку доступа в конце месяца:

cat /var/log/httpd/access_log* | goaccess --output-format=csv

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

Как я могу пропустить журналы предыдущего месяца и подвести итоги с первого дня месяца?

ps формат данных: %d/%b/%Y

1 ответ

Решение

Вы можете торговать бесполезным использованием cat для полезного grep,

grep -n $(date +'[0-3][0-9]/%b/%Y') /var/log/httpd/access_log* |
goaccess --output-format=csv

Если журналы датированы датой, было бы намного экономичнее пропустить журналы, которые, как вы знаете, слишком старые или слишком новые, то есть изменить аргумент с подстановочными знаками, чтобы вы соответствовали только тем файлам, которые вам действительно нужны (или запускаете что-то вроде find -mtime -30 хотя бы сузить набор до нескольких файлов).

(The cat бесполезно, потому что, если goaccess вообще правильно написано, он должен уметь справляться

goaccess --output-format=csv /var/log/httpd/access_log*

просто хорошо.)

Другие вопросы по тегам