Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Mar 2021 00:10:57 GMT
From:      Juraj Lutter <otis@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 78619cc2ff1b - stable/13 - newsyslog(8): Implement a new 'E' flag to not rotate empty log files
Message-ID:  <202103150010.12F0Av0h071476@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by otis (ports committer):

URL: https://cgit.FreeBSD.org/src/commit/?id=78619cc2ff1baa097251d826f339d7fa3e6301e2

commit 78619cc2ff1baa097251d826f339d7fa3e6301e2
Author:     Juraj Lutter <otis@FreeBSD.org>
AuthorDate: 2021-02-28 22:07:14 +0000
Commit:     Juraj Lutter <otis@FreeBSD.org>
CommitDate: 2021-03-15 00:08:23 +0000

    newsyslog(8): Implement a new 'E' flag to not rotate empty log files
    
    Based on an idea from dvl's coworker, László DANIELISZ, implement
    a new flag, 'E', that prevents newsyslog(8) from rotating the empty
    log files. This 'E' flag ist mostly usable in conjunction with 'B'
    flag that instructs newsyslog(8) to not insert an informational
    message into the log file after rotation, keeping it still empty.
    
    Reviewed by:    markj, ian, manpages (rpokala)
    Approved by:    markj, ian, manpages (rpokala)
    MFC after:      2 weeks
    Differential Revision:  https://reviews.freebsd.org/D28940
    
    (cherry picked from commit c7d27b225df8d7fb36a31a21737d4309593c4604)
---
 usr.sbin/newsyslog/newsyslog.c      | 11 ++++++++++-
 usr.sbin/newsyslog/newsyslog.conf.5 | 14 +++++++++++++-
 2 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/newsyslog/newsyslog.c b/usr.sbin/newsyslog/newsyslog.c
index dc3ea51c8032..8f8bb54e9b46 100644
--- a/usr.sbin/newsyslog/newsyslog.c
+++ b/usr.sbin/newsyslog/newsyslog.c
@@ -114,7 +114,8 @@ __FBSDID("$FreeBSD$");
 #define	CE_PID2CMD	0x0400	/* Replace PID file with a shell command.*/
 #define	CE_PLAIN0	0x0800	/* Do not compress zero'th history file */
 #define	CE_RFC5424	0x1000	/* Use RFC5424 format rotation message */
-
+#define CE_NOEMPTY	0x2000	/* Do not rotate the file when its size */
+				/* is zero */
 #define	MIN_PID         5	/* Don't touch pids lower than this */
 #define	MAX_PID		99999	/* was lower, see /usr/include/sys/proc.h */
 
@@ -531,6 +532,11 @@ do_entry(struct conf_entry * ent)
 			printf("does not exist, skipped%s.\n", temp_reason);
 		}
 	} else {
+		if (ent->flags & CE_NOEMPTY && ent->fsize == 0) {
+			if (verbose)
+				printf("--> Not rotating empty file\n");
+			return (free_or_keep);
+		}
 		if (ent->flags & CE_TRIMAT && !force && !rotatereq &&
 		    !oversized) {
 			diffsecs = ptimeget_diff(timenow, ent->trim_at);
@@ -1291,6 +1297,9 @@ no_trimat:
 			case 'd':
 				working->flags |= CE_NODUMP;
 				break;
+			case 'e':
+				working->flags |= CE_NOEMPTY;
+				break;
 			case 'g':
 				working->flags |= CE_GLOB;
 				break;
diff --git a/usr.sbin/newsyslog/newsyslog.conf.5 b/usr.sbin/newsyslog/newsyslog.conf.5
index d6b1191aa8b2..b897389b99dd 100644
--- a/usr.sbin/newsyslog/newsyslog.conf.5
+++ b/usr.sbin/newsyslog/newsyslog.conf.5
@@ -21,7 +21,7 @@
 .\" the suitability of this software for any purpose.  It is
 .\" provided "as is" without express or implied warranty.
 .\"
-.Dd August 21, 2018
+.Dd February 26, 2021
 .Dt NEWSYSLOG.CONF 5
 .Os
 .Sh NAME
@@ -286,6 +286,18 @@ this log file.
 This option would affect how the
 .Xr dump 8
 command treats the log file when making a file system backup.
+.It Cm E
+indicates that the log file should not be rotated when its
+size is zero.
+The
+.Cm E
+flag is mostly useful in conjunction with
+.Cm B
+flag to prevent
+.Xr newsyslog 8
+from inserting an informational 
+.Tn ASCII
+message into the new file.
 .It Cm G
 indicates that the specified
 .Ar logfile_name



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