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 [EMAIL PROTECTED] with "unsubscribe freebsd-questions" in the body of the message