LINUX.ORG.RU
решено ФорумAdmin

Не работает команда при ротации логов sphinx

 , ,


0

1

Приветствую.

Настроил вывод логов sphinx в отдельный файл перед ротацией логов для дальнейшего анализа SEO-шником:

cat /var/log/sphinx/query.log | awk '{print $1" «$2» «$3» «$5»;«$4»;«$13»;«$14» «$15» «$16» «$17» «$18}' | grep 'bitrix' >/www/sitename.ru/tmp/logs/`date +%d-%m-%Y_%H:%M:%S`.csv

Но в итоге в папке у меня файлы с нулевым объемом. И ни одной строчки.

Можете подсказать, что я не так сделал?

# cat /etc/logrotate.d/sphinx 
/var/log/sphinx/*.log {
       daily
       rotate 180
       copytruncate
       delaycompress
       compress
       notifempty
       missingok
       prerotate
           cat /var/log/sphinx/query.log | awk '{print $1" "$2" "$3" "$5";"$4";"$13";"$14" "$15" "$16" "$17" "$18}' | grep 'bitrix' >/www/sitename.ru/tmp/logs/`date +%d-%m-%Y_%H:%M:%S`.csv
       endscript
}

Ответ на: комментарий от l0stparadise

Спасибо за подсказку. По логам стало понятно, из-за директивы «/var/log/sphinx/*.log» вначале ротируется query.log, создается файл с результатами. Потом ротируется searchd.log, опять создается файл с результатами и в итоге он затирается, т.к. query.log уже пустой.

Конечный конфиг:

/var/log/sphinx/query.log {
       daily
       rotate 180
       copytruncate
       delaycompress
       compress
       notifempty
       missingok
       prerotate
           /bin/cat /var/log/sphinx/query.log | /bin/awk '{print $1" "$2" "$3" "$5";"$4";"$13";"$14" "$15" "$16" "$17" "$18}' | /bin/grep 'bitrix' >/www/sitename.ru/tmp/logs/`date +%d-%m-%Y_%H:%M:%S`.csv
       endscript
}

/var/log/sphinx/[!query]*.log {
       daily
       rotate 180
       copytruncate
       delaycompress
       compress
       notifempty
       missingok
}

Правда, возникает вопрос, возможно ли как-то задать маску ротации всех логов, кроме query.log, а этот файл ротировать отдельно. Сейчас пока поставил «/var/log/sphinx/[!query]*.log» - вроде работает.

Jalart ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.