aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCeri Davies <ceri@FreeBSD.org>2021-06-02 16:28:28 +0000
committerCeri Davies <ceri@FreeBSD.org>2021-06-02 16:28:28 +0000
commit774bb1c256fbc58a7e8d0d1f7d6427007105b334 (patch)
tree2ad0f7c92b87b7376e0a01cfbddf2206642a0223
parentc9f8dcda856c50325190326a618dc251311bc43a (diff)
periodic: add support for .xz and .zcat compressed logs
Also improve temporary file usage in 200.accounting, add an xref to zstd(1) to newsyslog.conf.5, and clarify in periodic.conf that "daily accounting" means process accounting and "monthly accounting" is login accounting. PR: 253868 Reviewed by: allanjude Approved by: blackend (mentor) Differential Revision: https://reviews.freebsd.org/D29267
-rw-r--r--share/man/man5/periodic.conf.52
-rw-r--r--usr.sbin/newsyslog/newsyslog.conf.51
-rwxr-xr-xusr.sbin/periodic/etc/daily/460.status-mail-rejects6
-rwxr-xr-xusr.sbin/periodic/etc/monthly/200.accounting30
-rwxr-xr-xusr.sbin/periodic/etc/security/800.loginfail2
-rwxr-xr-xusr.sbin/periodic/etc/security/900.tcpwrap2
6 files changed, 34 insertions, 9 deletions
diff --git a/share/man/man5/periodic.conf.5 b/share/man/man5/periodic.conf.5
index 46174da2772a..ef80578e5372 100644
--- a/share/man/man5/periodic.conf.5
+++ b/share/man/man5/periodic.conf.5
@@ -365,7 +365,7 @@ daily.
.Pq Vt bool
Set to
.Dq Li YES
-if you want to rotate your daily accounting files.
+if you want to rotate your daily process accounting files.
No rotations are necessary unless
.Va accounting_enable
is enabled in
diff --git a/usr.sbin/newsyslog/newsyslog.conf.5 b/usr.sbin/newsyslog/newsyslog.conf.5
index b897389b99dd..cf1a36305b00 100644
--- a/usr.sbin/newsyslog/newsyslog.conf.5
+++ b/usr.sbin/newsyslog/newsyslog.conf.5
@@ -415,6 +415,7 @@ entry:
.Xr bzip2 1 ,
.Xr gzip 1 ,
.Xr xz 1 ,
+.Xr zstd 1 ,
.Xr syslog 3 ,
.Xr chown 8 ,
.Xr newsyslog 8 ,
diff --git a/usr.sbin/periodic/etc/daily/460.status-mail-rejects b/usr.sbin/periodic/etc/daily/460.status-mail-rejects
index ce633640b6a4..6161a5525cc1 100755
--- a/usr.sbin/periodic/etc/daily/460.status-mail-rejects
+++ b/usr.sbin/periodic/etc/daily/460.status-mail-rejects
@@ -52,6 +52,12 @@ case "$daily_status_mail_rejects_enable" in
elif [ -f /var/log/maillog.$n.bz2 ]
then
bzcat -fc /var/log/maillog.$n.bz2
+ elif [ -f /var/log/maillog.$n.xz ]
+ then
+ xzcat -f /var/log/maillog.$n.xz
+ elif [ -f /var/log/maillog.$n.zst ]
+ then
+ zstdcat -fc /var/log/maillog.$n.zst
fi
n=$(($n - 1))
done
diff --git a/usr.sbin/periodic/etc/monthly/200.accounting b/usr.sbin/periodic/etc/monthly/200.accounting
index 46f153de535a..9d50ba182777 100755
--- a/usr.sbin/periodic/etc/monthly/200.accounting
+++ b/usr.sbin/periodic/etc/monthly/200.accounting
@@ -18,16 +18,30 @@ case "$monthly_accounting_enable" in
W=/var/log/utx.log
rc=0
remove=NO
+ filetoread=$W.0
if [ ! -f $W.0 ]
then
- if [ -f $W.0.gz ]
+ if [ -f $W.0.gz ] || [ -f $W.0.bz2 ] || [ -f $W.0.xz ] || [ -f $W.0.zst ]
then
+ TMP=`mktemp -t accounting`
remove=YES
- zcat $W.0.gz > $W.0 || rc=1
- elif [ -f $W.0.bz2 ]
- then
- remove=YES
- bzcat $W.0.bz2 > $W.0 || rc=1
+ filetoread=$TMP
+ if [ -f $W.0.gz ]
+ then
+ zcat $W.0.gz > $TMP || rc=1
+ elif [ -f $W.0.bz2 ]
+ then
+ bzcat $W.0.bz2 > $TMP || rc=1
+ elif [ -f $W.0.xz ]
+ then
+ xzcat $W.0.xz > $TMP || rc=1
+ elif [ -f $W.0.zst ]
+ then
+ zstdcat $W.0.zst > $TMP || rc=1
+ else
+ # shouldn't get here, unless something disappeared under us.
+ rc=2
+ fi
else
echo '$monthly_accounting_enable is set but' \
"$W.0 doesn't exist"
@@ -39,10 +53,10 @@ case "$monthly_accounting_enable" in
echo ""
echo "Doing login accounting:"
- rc=$(ac -p -w $W.0 | sort -nr -k 2 | tee /dev/stderr | wc -l)
+ rc=$(ac -p -w $filetoread | sort -nr -k 2 | tee /dev/stderr | wc -l)
[ $rc -gt 0 ] && rc=1
fi
- [ $remove = YES ] && rm -f $W.0;;
+ [ $remove = YES ] && rm -f $TMP;;
*) rc=0;;
esac
diff --git a/usr.sbin/periodic/etc/security/800.loginfail b/usr.sbin/periodic/etc/security/800.loginfail
index 4c78f441639a..ef169482001c 100755
--- a/usr.sbin/periodic/etc/security/800.loginfail
+++ b/usr.sbin/periodic/etc/security/800.loginfail
@@ -53,6 +53,8 @@ catmsgs() {
case $f in
*.gz) zcat -f $f;;
*.bz2) bzcat -f $f;;
+ *.xz) xzcat -f $f;;
+ *.zst) zstdcat -f $f;;
esac
done
[ -f ${LOG}/auth.log ] && cat $LOG/auth.log
diff --git a/usr.sbin/periodic/etc/security/900.tcpwrap b/usr.sbin/periodic/etc/security/900.tcpwrap
index 10b02e9e2bb6..b6c44126bc1c 100755
--- a/usr.sbin/periodic/etc/security/900.tcpwrap
+++ b/usr.sbin/periodic/etc/security/900.tcpwrap
@@ -53,6 +53,8 @@ catmsgs() {
case $f in
*.gz) zcat -f $f;;
*.bz2) bzcat -f $f;;
+ *.xz) xzcat -f $f;;
+ *.zst) zstdcat -f $f;;
esac
done
[ -f ${LOG}/messages ] && cat $LOG/messages