Фильтрация файлов Apache с использованием Linux - PullRequest
0 голосов
/ 18 августа 2011

Я пытаюсь отфильтровать кучу файлов журнала apache, чтобы ИСКЛЮЧИТЬ все запросы, которые имеют:

  • Шаблон /static/ (это моя папка images / js, которую я хочу исключить)
  • 10.xxx.xxx.xxx (где x - любое число - я не хочу, чтобы внутренние запросы включались)
  • Любой ответ, кроме "GET / HTTP/1.1" 200 - нужен только успех

У меня есть папка, содержащая несколько файлов .gz.Есть ли способ запустить команду linux, которая выполнит надлежащую фильтрацию и сохранит результаты в файле с именем apache_log.txt?

Я действительно ограничен в своих знаниях Linux, поэтому буду признателен за любую помощь!

1 Ответ

2 голосов
/ 18 августа 2011

Для каждого файла * .gz распакуйте и отфильтруйте нежелательные статические и локальные данные, отфильтруйте требуемый «GET 200» и добавьте его в файл результатов.

for f in *.gz ; do zcat $f | grep -v '/static/' | grep -v '10\.[0-9]\+\.\.[0-9]\+\.[0-9]\+' | grep 'GET / HTTP/1.1" 200' >> apache_log.txt ; done

Или в несколько строк.

for f in *.gz
do
    zcat $f \
        | grep -v '/static/' \
        | grep -v '10\.[0-9]\+\.\.[0-9]\+\.[0-9]\+' \
        | grep 'GET / HTTP/1.1" 200' \
        >> apache_log.txt
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...