использование logrorate со сложным каталогом журналирования

использование logrorate со сложным каталогом журналирования

Приложение имеет каталог журнала, в котором создается множество выходных данных журнала. Структура файла в этом каталоге журнала выглядит примерно так:

localhost:/var/log/myapp # ls

appClient22334.a    appClient22336.a    appClient22338.a
appClient22334.b    appClient22336.b    appClient22338.b    
appClient22334.c    appClient22336.c    appClient22338.c
appClient22335.a    appClient22337.a    appClient22339.a
appClient22335.b    appClient22337.b    appClient22339.b
appClient22335.c    appClient22337.c    appClient22339.c

Каждый день приложение генерирует сотни таких файлов, которые все подлежат хранению. Числа увеличиваются.

В большинстве случаев я использую logrotate для ежедневного хранения и сжатия файлов журналов, но в этом случае я не вижу, как это можно сделать.

Идеальным решением было бы что-то вроде

appClient.20120324.gzip
appClient.20120325.gzip
appClient.20120326.gzip

Может ли кто-нибудь из вас подтолкнуть меня в правильном направлении, можно ли это сделать с помощью logrotate (может быть, есть какой-то хитрый способ использования prerotate?), или быстрее/проще написать специальный bash-скрипт?

решение1

Для простоты я бы запустил ежедневное задание cron, которое объединяет вчерашние файлы журнала в один файл (например, yesterday.log) и в случае успеха удаляет их, а затем запускает logrotate, чтобы (пере)именовать и сжать этот файл. Вы могли бы заставить logrotate выполнить всю задачу, используя , sharedscriptsно я так не думаю, и я бы не стал тратить время, пытаясь разобраться в этом.

Связанный контент