1

Есть ли утилита, которая покажет вам разницу в каталоге файлов журналов в один момент времени и в текущий момент?

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

Я ищу утилиту для Linux. Я также забочусь только о новом контенте, а не о старых журналах.

2 ответа2

2

Ну, если подойдет простая работа cron, вы можете настроить что-то вроде этого:

  1. От имени пользователя root запустите crontab -e и добавьте эту строку в свои crontabs:

    00 22 * * * tar czf /log_backups/`date +%m%d%Y`.tgz /var/log/ 
    

    Это будет работать каждую ночь в 22:00 и создавать архив с именем .tgz в каталоге /log_backups/ . Итак, если сегодня 16 апреля 2013 года, он создаст архив с именем 04162013.tgz

  2. Если вы хотите сравнить сегодняшние журналы apache со вчерашними, просто извлеките соответствующий tar-архив и сравните файлы (очевидно, вам потребуется резервная копия вчерашних журналов):

    tar xzf /log_backups/03162013.tgz -C /tmp/
    diff /var/log/apache2/error.log /tmp/var/log/apache2/error.log
    

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

1

Почему бы не использовать logrotate (man страницу)?

Похоже, это именно то, что вы ищете:

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

Обычно logrotate запускается как ежедневное задание cron. Он не будет изменять журнал несколько раз в течение одного дня, если критерий для этого журнала не основан на размере журнала, а logrotate запускается несколько раз каждый день, или если не используется опция -f или --force.

В командной строке может быть указано любое количество файлов конфигурации. Более поздние файлы конфигурации могут переопределять параметры, указанные в более ранних файлах, поэтому важен порядок, в котором перечислены файлы конфигурации logrotate. Обычно следует использовать один файл конфигурации, который включает любые другие файлы конфигурации, которые необходимы. См. Ниже для получения дополнительной информации о том, как использовать директиву include для достижения этой цели. Если в командной строке указан каталог, каждый файл в этом каталоге используется как файл конфигурации.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .