Logrotate

Wer seine Logrotate-Konfiguration testen möchte, verwendet:

logrotate --debug /etc/logrotate.d/syslog

Ansonsten wird Logrotate - ohne weiteres Zutun - einmal pro Nacht aktiv.

Die gebräuchlichsten Logrotate-Anweisungen sind:

compress
copytruncate
create 0600 root root
daily
dateext
endscript
missingok
nocreate
notifempty
postrotate
rotate 14
sharedscripts
size 30k
yearly

Alle Logrotate-Anweisungen in der Übersicht:

addextension ext
compress
compresscmd
compressext
compressoptions
copy
copytruncate
create mode owner group, create owner group
createolddir mode owner group
daily
dateext
dateformat format_string
datehourago
dateyesterday
delaycompress
extension ext
firstaction/endscript
hourly
ifempty
include file_or_directory
lastaction/endscript
mail address
mailfirst
maillast
maxage count
maxsize size
minage count
minsize size
missingok
monthly
nocompress
nocopy
nocopytruncate
nocreate
nocreateolddir
nodateext
nodelaycompress
nomail
nomissingok
noolddir
nosharedscripts
noshred
notifempty
olddir directory
postrotate/endscript
preremove/endscript
prerotate/endscript
renamecopy
rotate count
sharedscripts
shred
shredcycles count
size size
start count
su user group
tabooext [+] list
taboopat [+] list
uncompresscmd
weekly [weekday]
yearly

Best Practice - pro Tag eine Log-Datei, 14 Tage vorhalten, und für einfachen und schnellen Zugriff nicht komprimieren:

cat >/etc/logrotate.d/syslog <<EOF
/var/log/chrony/*
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    # compress
    copytruncate
    daily
    dateext
    missingok
    rotate 14
}
EOF

Troubleshooting

Cron meldet eine „kill-Usage“

Meldungen der Art

/etc/cron.daily/logrotate:

Usage:
 kill [options] <pid|name> [...]

Options:
 -a, --all              do not restrict the name-to-pid conversion to processes
                        with the same uid as the present process
 -s, --signal <sig>     send specified signal
 -q, --queue <sig>      use sigqueue(2) rather than kill(2)
 -p, --pid              print pids without signaling them
 -l, --list [=<signal>] list signal names, or convert one to a name
 -L, --table            list signal names and numbers

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see kill(1).
error: error running non-shared postrotate script for /var/log/gvm/gvmd.log of '/var/log/gvm/gvmd.log '

haben ihre Ursache möglicherweise in einer fehlerhaften Definition. Beispiel /etc/logrotate.d/gvmd - eine Prüfung ergibt: der enthaltene Befehl /bin/kill -HUP $(pidof gvmd) liefert einen Fehler, da der zu killende Prozess gar nicht lief, und pidof nichts zurückliefert. kill bringt dann seine Hilfeseite.

Built on 2022-06-03