Я хочу управлять журналами. До сих пор для меня лучший способ очистить системные журналы:
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)?
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
}