Date: Thu, 20 May 1999 01:51:24 -0500 (CDT) From: Jeff Lynch <jeff@mercury.jorsm.com> To: freebsd-isp@FreeBSD.ORG Subject: Re: Web Statistics break up program. Message-ID: <Pine.BSF.3.95q.990520013449.22143I-100000@mercury.jorsm.com> In-Reply-To: <Pine.GSO.3.96.990518195705.24618B-100000@roble2.roble.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 18 May 1999, Roger Marquis wrote:
> > > This will create an archived logfile (http.site.May_1999) and erase
> > > the original without needing to kill -1 the httpd.
> > >
> > > #!/bin/sh -
> > > LOGDIR=/var/log
> > > ARCDIR=/var/log/oldlogs
> > > DAY=`date | awk '{ OFS="_" ;print $2,$6}' `
> > > for log in $LOGDIR/http* ; do
> > > cp $log $ARCDIR/${log}.${DAY}
> > > chmod 440 $ARCDIR/${log}.${DAY}
> > > cp /dev/null $log
> > > done
> >
> > Egads!!
> > That's a pretty vicious race condition there, you'll lose records on busy
> > servers.
>
> In theory perhaps, in reality it doesn't. I've never seen this algorithm
> fail, even when used on log files that grow by several megabytes per day.
>
> --
> Roger Marquis
Briefly looking at the src for cp(1), it looks like you're both right. cp
stats and then mmaps the file at that instant if < 8MB (extended to next
multiple of page size) so appendages beyond that would be lost. For
greater than 8MB it while(read)'s until EOF, no race.
--jeff
============================================================================
Jeffrey A. Lynch | JORSM Internet, Regional Internet Services
email: jeff@jorsm.com | 7 Area Codes in Chicagoland and NW Indiana
Voice: (219)322-2180 | 100Mbps+ Connectivity, 56K-DS3, V.90, ISDN
Autoresponse: info@jorsm.com | Quality Service, Affordable Prices
http://www.jorsm.com | Serving Gov, Biz, Indivds Since 1995
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isp" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.95q.990520013449.22143I-100000>
