Лучшие способы управлять системными журналами

Я хочу управлять журналами. До сих пор для меня лучший способ очистить системные журналы:

truncate -s 0 /var/log/*log

Я ищу лучшие пути к:

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

- Обновленный:

Согласно северному-bradley ответу здесь решение, кажется, находится в использовании lastaction/endscript опция в logrotate файл конфигурации. Так, это работает отлично при помощи этого настройки:

/var/log/*log{
       rotate 0
       size 0 
       hourly
       nocreate
       maxage 0
       missingok
       nocompress
       ifempty
       copytruncate
       lastaction
             rm -rf /var/log/*log.1
       endscript
}

copytruncate копия опции журналы в новое игнорирование файлов журнала rotate 0 и nocreate, затем усекает исходные журналы. После того, как все файлы журнала были повернуты, rm в lastaction/endscript раздел удаляет все новые файлы журнала, созданные copytruncate. В конце у нас есть только исходные очищенные файлы.

2 - Четкие последние 'n' записи

3 - Блокируйте/Разблокируйте новые записи, чему-то нравится, замораживаются/размораживают. Для этого я думаю для использования ln -s /dev/null /var/log/*log, но я не знаю, могу ли я восстановить этот easly, не нуждаясь ни в каком сценарии. Или возможно техника состояния резервного копирования/восстановления могла помочь.

Есть ли какой-либо другой путь, который мог помочь мне сделать все вышеупомянутое (2 и 3)?

1
задан 23 May 2017 в 15:39

1 ответ

Logrotate специально предназначен для справлений с такими задачами, и он делает это задание вполне прилично. Я предлагаю, чтобы Вы использовали его.

Теперь, позволяет взгляду (и при необходимости - фиксируют), Ваш logrotate файл, при помощи прекрасных страниц руководства, предоставленных хорошими парнями из Ubuntu ( ссылка ).

Ваша версия:

# File: /etc/logrotate.d/.test
/var/log/*log{
   size 0 
   hourly
   nocreate
   copytruncate
   rotate 0
}

я предлагаю, чтобы Вы использовали ниже:

# File: /etc/logrotate.d/.test
/var/log/*.log{
# the rotate option sets how many times the log files are rotated before being removed. Setting it to 0 means - delete right away (you'll only have the original)
   rotate 0
# the size option sets what size should a file reach before being rotated - I'm setting it to 10MB, but you can change it as it pleases you
   size 10M
# The size option will prevail this option. The daemon will run hourly, but won't rotate the log file until it reaches 10 MB
   hourly
# this option fits your requirement not to create new log files
   nocreate
# delete rotated log files older than 0 days
   maxage 0
# truncate the original file rather creating new one
   nocopytruncate
}
2
ответ дан 7 December 2019 в 13:35

Другие вопросы по тегам:

Похожие вопросы: