#!/bin/sh
# The package default /etc/ntpsec/ntp.conf suggests (and the ntpviz package
# /etc/ntpsec/ntp.d/ntpviz.conf enables) logging of various statistics to
# the /var/log/ntpsec directory. The daemon automatically changes to a new
# datestamped set of files at midnight, so all we need to do is delete old
# ones, and compress the ones we're keeping so disk usage is controlled.
statsdir=$(grep -v '^#' /etc/ntpsec/ntp.conf | \
sed -nr 's/^statsdir[[:space:]]+([^[:space:]]+).*$/\1/p')
# The ntpsec package, unlike ntp, uses /var/log/ntpsec as the default for
# statsdir.
if [ -z "$statsdir" ]; then
statsdir=/var/log/ntpsec
fi
if [ -d "$statsdir" ]; then
# only keep a week's depth of these. Delete only files exactly
# within the directory and do not descend into subdirectories
# to avoid security risks on platforms where find is not using
# fts-library.
find "$statsdir" -maxdepth 1 -type f \
\( -name "*stats*" -o -name "gpsd*" -o -name "temps*" \) \
-mtime +7 -delete
# compress whatever is left to save space but make sure to really
# do it only in the expected directory.
cd "$statsdir" || exit 1
for pattern in "*stats.????????" "gpsd.????-??-??" "temps.????-??-??"
do
# shellcheck disable=SC2086
ls -d -- $pattern > /dev/null 2>&1
if [ $? -eq 0 ]; then
# Note that gzip won't compress the file names that
# are hard links to the live/current files, so this
# compresses yesterday and previous, leaving the live
# log alone. We suppress the warnings gzip issues
# about not compressing the linked file.
# shellcheck disable=SC2086
gzip --best --quiet -- $pattern
return=$?
case $return in
2)
# squash all warnings
;;
*)
exit $return # but let real errors through
;;
esac
fi
done
fi
|