Thank you for your replies Raymond and Nathan.

Can you possibly shed some light on the " /usr/sbin/invoke-rc.d" part? Read on for more context...

I want to use logrotate to rotate the varnish log files. I found the file (/home/username/varnish-1.1.1/debian/varnish.logrotate) containing the following:
>>>
/var/log/varnish/varnish.log {
 daily
 rotate 7
 compress
 delaycompress
 postrotate
   /usr/sbin/invoke-rc.d varnishlog reload > /dev/null
 endscript
}
>>>

However, we are using varnishncsa and not varnishlog. Running "ps aux | grep varnish" yields:
>>
/opt/varnish/sbin/varnishd
/opt/varnish/bin/varnishncsa -a -c -w /var/log/varnish.log
>>

Is setting up logrotate for varnishncsa as simple as changing the invoke-rc.d line of the logrotate file to be:
>>
   /usr/sbin/invoke-rc.d varnishncsa reload > /dev/null
>>

If so, how to pass in the ncsa commandline parameters?

Thanks for any guidance.
-Chris

On Sep 5, 2008, at 10:39 AM, Nathan Kinkade wrote:

2008/9/4 Chris Johnson <[EMAIL PROTECTED]>:
Does anyone successfully have logrotate working with varnishncsa?

Thanks,
Chrs

Below is the solution I came up with.  The lastaction part may not be
necessary for anyone else, but on occasion it seemed to be necessary
for us, and rather than spending much time looking into the underlying
cause I'm okay with this solution.

Nathan

/etc/logrotate.d/varnish
===========================
/var/log/varnish/varnish.log {
 daily
 rotate 52
 compress
 create
 delaycompress
 dateext
 postrotate
   /usr/sbin/invoke-rc.d varnishlog reload > /dev/null
   DATE=$(date +%Y%m%d)
   VDIR=/var/log/varnish
   # varnishlog or varnishncsa(??) seems to produce a lot of entries
that are null,
   # the grep -v in the middle just attempts to eliminate them
   /usr/bin/ionice -c3 /usr/bin/varnishncsa -r
$VDIR/varnish.log-$DATE | grep -v '^- - -' | gzip >
$VDIR/varnish.log-$DATE.gz && rm $VDIR/varnish.log-
$DATE
 endscript
 lastaction
   # Sometimes, for reasons that I can't explain, varnishlog stops
logging after
# rotation. The new log just sits there at 0 bytes and it takes a reload to # make it start logging again. It could be some complex timing issue, but # hopefully just adding one last restart of varnishlog will be enough.
   /usr/sbin/invoke-rc.d varnishlog force-reload > /dev/null
 endscript
}
===========================

_______________________________________________
varnish-misc mailing list
[email protected]
http://projects.linpro.no/mailman/listinfo/varnish-misc

Reply via email to