Date: Thu, 5 Dec 2002 16:29:57 +0100 (CET) From: Andrew Prewett <andrew@kronos.HomeUnix.com> To: freebsd-questions@FreeBSD.ORG Subject: Re: run command on logfile before it's rotated Message-ID: <20021205154105.E39554-100000@slave.east.ath.cx> In-Reply-To: <1039067690.298.18.camel@asa.gascom.net.ru> References: <93B9E916-07D2-11D7-B076-0003936CEB72@garbage.dk> <20021204220240.GY467@sub21-156.member.dsl-only.net> <1039067690.298.18.camel@asa.gascom.net.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Today Akifyev Sergey wrote: > On Thu, 2002-12-05 at 01:02, Nathan Kinkade wrote: > > On Wed, Dec 04, 2002 at 10:51:43PM +0100, Thomas von Hassel wrote: > > > I've got my system set up to rotate the maillog every day at midnight. > > > What do i do if i want to run a command on the logfile just before it's > > > rotated ? > > > > > > /thomas > > > -- > > > Thomas von Hassel > > > DarX @ irc > > > darxmac @ AIM/iChat > > > Powered by inkwell...! > > > > How about just setting a cron job to run some reasonable period prior > > to newsyslog being run? > > It's incorrect way to do things, because some entries could be added to > syslog _after_ the command is run, but _before_ newsyslog. Instead you > should call some script via cron with crontab entry like this: > > # rotate log files every hour, if necessary > 0 * * * * root /usr/bin/lock_script.sh > > And the script must contain something like: > > #!/bin/sh > for $STR in `cat /etc/newsyslog.conf |grep -v '^[:space:]*#.*$'|cut > -f1`; do > lockf "${STR}" newsyslog.sh "${STR}" > done This is _advisory_ lock, not _mandatory_. Syslogd could write to the file happily while `your_command' is running or/and between `your_command' and newsyslog. Maybe this is a little closer (not tested): kill -17 <syslogd pid>; my_scrypt; newsyslog; kill -19 <syslogd pid> Ie.: STOP syslogd; run the script(s); rotate logs; CONTinue syslogd. But if there is to much logging between the two signals, then messages could be lost. -andrew > > The newsyslog.sh should contain: > > #!/bin/sh > your_command "${1}" > newsyslog "${1}" > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021205154105.E39554-100000>