syslog log rotation
Alex Kiernan
alexk at demon.net
Tue Apr 24 08:53:30 UTC 2001
We've a recurrent problem when scanlogs runs overnight on a box which
has all its disk NFS mounted (a NetApp). When syslog rotation happens
the way Solaris & NFS interact causes us to get files, immediately
post rotation, which are exactly the same size as those before, but
entirely filled with zeroes (could be holes, I haven't checked), they
then grow from the end of those files (albeit with some corruption in
the first real block).
The solution is to not use this chunk from scanlogs:
## Copy syslog files, truncating old inode since syslog has it open.
for F in ${SYSLOGS}; do
rm -f ${F}.old
cp ${F} ${F}.old
cat /dev/null >${F}
done
ctlinnd -s logmode
but instead do something like this:
## Move syslog files.
for F in ${SYSLOGS}; do
rm -f ${F}.old
mv ${F} ${F}.old
cat /dev/null >${F}
done
hupsyslogd
ctlinnd -s logmode
where hupsyslogd is a news only setuid root program which sends a
SIGHUP to syslogd (using a compiled in path to a syslogd.pid type
file).
Is it worth figuring how to integrate this cleanly, or should I just
make hupsyslogd.c available for dropping into contrib?
--
Alex Kiernan, Principal Engineer, Development, Thus PLC
More information about the inn-workers
mailing list