aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr.sbin/newsyslog/newsyslog.c11
-rw-r--r--usr.sbin/newsyslog/newsyslog.conf.514
2 files changed, 23 insertions, 2 deletions
diff --git a/usr.sbin/newsyslog/newsyslog.c b/usr.sbin/newsyslog/newsyslog.c
index d850b0af9f53..c20a36cf31c0 100644
--- a/usr.sbin/newsyslog/newsyslog.c
+++ b/usr.sbin/newsyslog/newsyslog.c
@@ -129,7 +129,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 */
@@ -538,6 +539,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);
@@ -1292,6 +1298,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 e307375c766e..ec21cfdaca2a 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 January 15, 2018
+.Dd February 26, 2021
.Dt NEWSYSLOG.CONF 5
.Os
.Sh NAME
@@ -281,6 +281,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