logrotate: ни вращать, ни сжимать пустые файлы
Я только что настроил (r) сервер системного журнала для получения журналов различных клиентов, который работает нормально.
только logrotate все еще не ведет себя как намерение. я хочу, чтобы logrotate создавал новый файл журнала для каждого дня, но только для хранения и хранения, т.е. сжатия непустых файлов.
мой конфиг logrotate выглядит сейчас так
# sample configuration for logrotate being a remote server for multiple clients
/var/log/syslog
{
rotate 3
daily
missingok
notifempty
delaycompress
compress
dateext
nomail
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
# local i.e. the system's very own logs: keep logs for a whole month
/var/log/kern.log
/var/log/kernel-info
/var/log/auth.log
/var/log/auth-info
/var/log/cron.log
/var/log/cron-info
/var/log/daemon.log
/var/log/daemon-info
/var/log/mail.log
/var/log/rsyslog
/var/log/rsyslog-info
{
rotate 31
daily
missingok
notifempty
delaycompress
compress
dateext
nomail
sharedscripts
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
# received i.e. logs from the clients
/var/log/path-to-logs/*/*
{
rotate 31
daily
missingok
notifempty
delaycompress
compress
dateext
nomail
}
В итоге я получаю что-то вроде "суммированных" файлов, таких как filename-datetampDay-Day и соответствующие файлы.gz. У меня есть пустые файлы, которые в конечном итоге заархивированы.
так же notifempty
Директива фактически отвечает за эти файлы DayX-DayY, дни, в которые действительно ничего не произошло?
Каков эффективный способ удаления как пустых файлов журналов, так и их файлов.gz, чтобы в конечном итоге я сохранял только журналы / сжатые файлы, которые действительно содержат данные?
1 ответ
Notifempty работает правильно, удалите delaycompress из вашей конфигурации.
Я проверил его на локальном компьютере, и он должен работать так, как вы хотите.
Это также хорошая команда:
logrotate -d /etc/logrotate.d/<CONFIG_FILE>
Он покажет вам, как журналы будут обрабатываться без фактической обработки журналов.