2015-09-14 3 views
-1

Я пытаюсь добавить фильтр в журналы apache и создать новый файл. Мой файл HTTPD-виртуальных доменов выглядит примерно this-Пользовательские журналы в Apache

<VirtualHost *:80> 
    ServerName local.com 
    ServerAlias local.com 
    DocumentRoot "/Users/preetika.shukla/apps/devices" 
    ErrorLog "/private/var/log/apache2/error_log" 
    CustomLog "|/usr/bin/grep \’test\'>>/var/log/apache2/test_access" common 
    ServerAdmin [email protected] 
    <Directory "/Users/preetika.shukla/apps/devices"> 
    Options Indexes FollowSymLinks 
    AllowOverride All 
    Require all granted 
    Allow from all 
</Directory> 

короче, я хочу test_Access log file содержать только те журналы, относящиеся к где тест ключевого слова. Как бы то ни было, это не работает, какие-либо предложения о том, как пройти через это?

ответ

0

Вы можете создать perl-скрипт для извлечения регулярного выражения с помощью команды grep.

+0

не добавляет grep в пользовательский журнал делать то же самое? – jeangrey

+0

Perl-скрипт будет анализировать исходный файл журнала Apache и фильтровать строки с ключевым словом «test» и отправить вывод в файл пользовательского журнала – kd0807

+0

@ kd0807 - У меня такая же проблема, но я не имею никакого представления о perl скрипт, можете ли вы написать perl-скрипт для этого же, ПОЖАЛУЙСТА :) –

0

я достиг, используя следующие:

  1. Написать скрипт (test.sh), который имеет необходимые функции, убедитесь, что этот скрипт продолжает работать. Если это выходит по истечении определенного периода времени, сервер выдает ошибку: sudo tail -f /var/log/apache2/access_log | /usr/bin/grep --line-buffered test >> /var/log/apache2/test_access (здесь я пытаюсь вычленить информацию испытания в access_log)
  2. добавьте ВХосты или httpd.conf файл- CustomLog «| $/и т.д./apache2 /extra/test.sh "common // - test.sh
  3. перезапустить сервер и следить за журналами. :)
Смежные вопросы