Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 2 Feb 2014 14:11:35 +0000 (UTC)
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r261401 - head/usr.sbin/newsyslog
Message-ID:  <201402021411.s12EBZXW071647@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bdrewery
Date: Sun Feb  2 14:11:34 2014
New Revision: 261401
URL: http://svnweb.freebsd.org/changeset/base/261401

Log:
  Fix newsyslog(8) to use the size of the file instead of the blocks it
  takes on disk, as advertised in newsyslog.conf(5).
  
  This fixes newsyslog(8) on ZFS with compression enabled to not have
  large files compared to the expected rotation size.
  
    # grep remotes/messages /etc/newsyslog.conf
    /var/log/remote/messages       root:info       640  5     500  *     JC
    # ls -alh /var/log/remote/messages
    -rw-r-----  1 root  info    3.2M Jan 31 20:02 /var/log/remote/messages
    # newsyslog -vN|grep remote/messages
    /var/log/remote/messages <5J>: size (Kb): 464 [500] --> skipping
    # stat -f "st_size: %z st_blocks: %b" /var/log/remote/messages
    st_size: 3372627 st_blocks: 928
    # zfs get -H compressratio zroot/syslogs
    zroot/syslogs    compressratio   3.77x   -
  
  With fix:
  
    # newsyslog -v | grep remote/messages
    /var/log/remote/messages <5J>: size (Kb): 3338 [500] --> trimming log....
  
  Approved by:	bapt (mentor)
  PR:		docs/150877
  Reported by:	Joshua Isom <jrisom@gmail.com>
  MFC after:	2 weeks

Modified:
  head/usr.sbin/newsyslog/newsyslog.c

Modified: head/usr.sbin/newsyslog/newsyslog.c
==============================================================================
--- head/usr.sbin/newsyslog/newsyslog.c	Sun Feb  2 07:28:04 2014	(r261400)
+++ head/usr.sbin/newsyslog/newsyslog.c	Sun Feb  2 14:11:34 2014	(r261401)
@@ -2284,7 +2284,7 @@ sizefile(const char *file)
 
 	if (stat(file, &sb) < 0)
 		return (-1);
-	return (kbytes(dbtob(sb.st_blocks)));
+	return (kbytes(sb.st_size));
 }
 
 /*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201402021411.s12EBZXW071647>