tested on Slackware current (Jan 2021)
That’s not the one you find on BSDs but it’s pretty nice anyhow.
https://github.com/pbraun9/rrr/blob/master/newsyslog
vi /etc/newsyslog.conf # Copies are saved on local disk. set oldlogs = /var/log/OLD/%n # Save the five most recent copies on local disk. # /var/log/wtmp and /var/log/btmp are left alone syslog { restart: hup /var/run/syslogd.pid log: cron /var/log/cron root 0 640 log: debug /var/log/debug root 0 640 log: mail /var/log/maillog root 0 640 log: messages /var/log/messages root 0 640 log: auth /var/log/secure root 0 640 log: syslog /var/log/syslog root 0 640 log: procmail /var/log/procmail.log vmail vmail 640 archive: cron oldlogs 5 archive: debug oldlogs 5 archive: mail oldlogs 5 archive: messages oldlogs 5 archive: auth oldlogs 5 archive: syslog oldlogs 5 archive: procmail oldlogs 5 }
and in case you want to handle additional daemons e.g. MariaDB
untested - hopefully the GID can be supplied by name also
mysql { restart: hup /var/run/... log: mysql /var/lib/mysql/mysqld.log mysql mysql 600 archive: mysql oldlogs 5 }
and here’s for NGINX
nginx { restart: hup /var/run/nginx.pid log: access /var/log/nginx/access.log www www 640 log: error /var/log/nginx/error.log www www 640 archive: access oldlogs 5 archive: error oldlogs 5 }
check
newsyslog -c
ls -lhF /var/log/maillog \ /var/log/messages \ /var/log/secure \ /var/log/syslog mkdir /var/log/OLD/ tail -n0 -F /var/log/*
Notice the syslog daemon gets restarted by our log handler
newsyslog
Compressed log archives appeared
ls -ltrhF /var/log/OLD/
get rid of Logrotate altogether
chmod -x /etc/cron.daily/logrotate removepkg logrotate rm -f /etc/logrotate.conf rm -f /etc/logrotate.d/syslog
keep this folder to track what’s going on while installing logrotate-enabled packages
ls -lF /etc/logrotate.d/
and finally enable the orphaned shit!
crontab -e # newsyslog-eyrie instead of logrotate 00 0 * * * /usr/local/sbin/newsyslog 2>&1
and in case this is quite an idling server, once a week might be enough (Sunday night instead of Saturday night for once)
# newsyslog-eyrie instead of logrotate 00 0 * * 1 /usr/local/sbin/newsyslog 2>&1
/var/log/lxc/*.log
)?Log rotation https://en.wikipedia.org/wiki/Log_rotation
newsyslog https://www.eyrie.org/~eagle/software/newsyslog/
newsyslog manual page https://www.eyrie.org/~eagle/software/newsyslog/docs.html
7.3. Log rotation https://www.cl.cam.ac.uk/~jw35/courses/apache/html/x1670.htm