conf/174054: [patch] enhance periodic to work similar to rc.subr
Garrett Cooper
yanegomi at gmail.com
Sun Dec 2 13:30:00 UTC 2012
>Number: 174054
>Category: conf
>Synopsis: [patch] enhance periodic to work similar to rc.subr
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Sun Dec 02 13:30:00 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator: Garrett Cooper
>Release: n/a
>Organization:
EMC Isilon
>Environment:
n/a
>Description:
The attached patch modifies periodic(5) to function in a more sane rc(5)-like manner. Please see http://lists.freebsd.org/pipermail/freebsd-current/2012-January/030933.html for more details (it's been tested).
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
Index: etc/periodic.subr
===================================================================
--- etc/periodic.subr (revision 0)
+++ etc/periodic.subr (working copy)
@@ -0,0 +1,82 @@
+#!/bin/sh
+# $FreeBSD$
+#
+# Copyright (c) 2012 The FreeBSD Project.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+# periodic.subr
+# functions used by periodic(5) scripts
+#
+
+: ${rcvar_manpage:='periodic.conf(5)'}
+
+if [ -z "${_periodic_subr_loaded}" ]; then
+
+_periodic_subr_loaded="YES"
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]; then
+ . /etc/defaults/periodic.conf
+ source_periodic_confs
+fi
+
+. /etc/rc.subr
+
+# Cat out a [compressed] set of log(s).
+#
+# Parameters:
+# 1 - log directory.
+# 2 - log basename, e.g. auth, messages, etc.
+catlogs() {
+ local _logdir _log_basename rc
+
+ _logdir="$1"
+ _log_basename="$2"
+
+ if [ ! -d "${_logdir:-}" ]; then
+ err 3 "log directory specified - ${_logdir} doesn't exist"
+ elif [ -z "${_log_basename:-}" ]; then
+ err 3 "you must supply a non-zero length log basename"
+ fi
+
+ # Cat out the compressed logs.
+ find "${_logdir}" -name "$log_basename.*" -mtime -2 |
+ sort -t. -r -n -k 2,2 |
+ while read f
+ do
+ case $f in
+ *.gz) zcat -f $f;;
+ *.bz2) bzcat -f $f;;
+ esac
+ done
+ # Cat out the original log.
+ if [ -f "$_logdir/$_log_basename" ]; then
+ cat "$_logdir/$_log_basename"
+ fi
+}
+
+fi # [ -z "${_periodic_subr_loaded}" ]
+
+_periodic_subr_loaded=:
Property changes on: etc/periodic.subr
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: etc/Makefile
===================================================================
--- etc/Makefile (revision 243747)
+++ etc/Makefile (working copy)
@@ -31,6 +31,7 @@
networks \
newsyslog.conf \
nsswitch.conf \
+ periodic.subr \
phones \
profile \
protocols \
Index: etc/defaults/periodic.conf
===================================================================
--- etc/defaults/periodic.conf (revision 243747)
+++ etc/defaults/periodic.conf (working copy)
@@ -150,11 +150,13 @@
daily_queuerun_enable="YES" # Run mail queue
daily_submit_queuerun="YES" # Also submit queue
-# 800.scrub-zfs
-daily_scrub_zfs_enable="NO"
-daily_scrub_zfs_pools="" # empty string selects all pools
-daily_scrub_zfs_default_threshold="35" # days between scrubs
-#daily_scrub_zfs_${poolname}_threshold="35" # pool specific threshold
+# 800.zfs_scrub
+daily_scrub_zfs_enable="YES" # Scrub zpools
+daily_scrub_zfs_default_threshold="35" # scrub every 5 weeks
+daily_scrub_zfs_pools="" # zpools to scrub;
+ # defaults to all
+#daily_scrub_zfs_${poolname}_threshold="35" # pool specific scrub
+ # threshold
# 999.local
daily_local="/etc/daily.local" # Local scripts
@@ -266,6 +268,9 @@
# 200.accounting
monthly_accounting_enable="YES" # Login accounting
+monthly_accounting_verbose="NO" # Be verbose when
+ # reporting login
+ # accounting info.
# 999.local
monthly_local="/etc/monthly.local" # Local scripts
Index: etc/periodic/daily/100.clean-disks
===================================================================
--- etc/periodic/daily/100.clean-disks (revision 243747)
+++ etc/periodic/daily/100.clean-disks (working copy)
@@ -5,51 +5,40 @@
# Remove garbage files more than $daily_clean_disks_days days old
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_clean_disks_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_clean_disks_enable; then
if [ -z "$daily_clean_disks_days" ]
then
- echo '$daily_clean_disks_enable is set but' \
+ err 2 '$daily_clean_disks_enable is set but' \
'$daily_clean_disks_days is not'
- rc=2
elif [ -z "$daily_clean_disks_files" ]
then
- echo '$daily_clean_disks_enable is set but' \
+ err 2 '$daily_clean_disks_enable is set but' \
'$daily_clean_disks_files is not'
- rc=2
else
- echo ""
- echo "Cleaning disks:"
+ if checkyesno daily_clean_disks_verbose; then
+ echo ""
+ echo "Cleaning disks:"
+
+ print=-print
+ else
+ print=
+ fi
set -f noglob
args="-name "`echo "$daily_clean_disks_files" |
sed -e 's/^[ ]*//' \
-e 's/[ ]*$//' \
-e 's/[ ][ ]*/ -o -name /g'`
- case "$daily_clean_disks_verbose" in
- [Yy][Ee][Ss])
- print=-print;;
- *)
- print=;;
- esac
-
rc=$(find / \( ! -fstype local -o -fstype rdonly \) -prune -o \
\( $args \) -atime +$daily_clean_disks_days \
-execdir rm -df {} \; $print | tee /dev/stderr | wc -l)
- [ -z "$print" ] && rc=0
[ $rc -gt 1 ] && rc=1
set -f glob
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/110.clean-tmps
===================================================================
--- etc/periodic/daily/110.clean-tmps (revision 243747)
+++ etc/periodic/daily/110.clean-tmps (working copy)
@@ -6,25 +6,24 @@
# don't end up with excessively old files there.
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_clean_tmps_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_clean_tmps_enable; then
if [ -z "$daily_clean_tmps_days" ]
then
- echo '$daily_clean_tmps_enable is set but' \
+ err 2 '$daily_clean_tmps_enable is set but' \
'$daily_clean_tmps_days is not'
- rc=2
else
- echo ""
- echo "Removing old temporary files:"
+ if checkyesno daily_clean_tmps_verbose; then
+ echo ""
+ echo "Removing old temporary files:"
+ print=-print
+ else
+ print=
+ fi
set -f noglob
args="-atime +$daily_clean_tmps_days -mtime +$daily_clean_tmps_days"
args="${args} -ctime +$daily_clean_tmps_days"
@@ -35,13 +34,6 @@
dargs="$dargs "`echo " ${daily_clean_tmps_ignore% }" |
sed 's/[ ][ ]*/ ! -name /g'`
}
- case "$daily_clean_tmps_verbose" in
- [Yy][Ee][Ss])
- print=-print;;
- *)
- print=;;
- esac
-
rc=$(for dir in $daily_clean_tmps_dirs
do
[ ."${dir#/}" != ."$dir" -a -d $dir ] && cd $dir && {
@@ -49,12 +41,9 @@
find -d . ! -name . -type d $dargs -delete $print
} | sed "s,^\\., $dir,"
done | tee /dev/stderr | wc -l)
- [ -z "$print" ] && rc=0
[ $rc -gt 1 ] && rc=1
set -f glob
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/120.clean-preserve
===================================================================
--- etc/periodic/daily/120.clean-preserve (revision 243747)
+++ etc/periodic/daily/120.clean-preserve (working copy)
@@ -5,49 +5,37 @@
# Remove stale files in /var/preserve
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_clean_preserve_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_clean_preserve_enable; then
if [ -z "$daily_clean_preserve_days" ]
then
- echo '$daily_clean_preserve_enable is set but' \
+ err 2 '$daily_clean_preserve_enable is set but' \
'$daily_clean_preserve_days is not'
- rc=2
elif [ ! -d /var/preserve ]
then
- echo '$daily_clean_preserve_enable is set but /var/preserve' \
+ err 2 '$daily_clean_preserve_enable is set but /var/preserve' \
"doesn't exist"
- rc=2
else
- echo ""
- echo "Removing stale files from /var/preserve:"
+ if checkyesno daily_clean_preserve_verbose; then
+ echo ""
+ echo "Removing stale files from /var/preserve:"
+ print=-print
+ else
+ print=
+ fi
if cd /var/preserve
then
- case "$daily_clean_preserve_verbose" in
- [Yy][Ee][Ss])
- print=-print;;
- *)
- print=;;
- esac
-
rc=$(find . ! -name . -mtime +$daily_clean_preserve_days \
-delete $print | tee /dev/stderr | wc -l)
- [ -z "$print" ] && rc=0
[ $rc -gt 1 ] && rc=1
else
rc=3
fi
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/130.clean-msgs
===================================================================
--- etc/periodic/daily/130.clean-msgs (revision 243747)
+++ etc/periodic/daily/130.clean-msgs (working copy)
@@ -5,21 +5,15 @@
# Remove system messages
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_clean_msgs_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_clean_msgs_enable; then
if [ ! -d /var/msgs ]
then
- echo '$daily_clean_msgs_enable is set but /var/msgs' \
+ err 2 '$daily_clean_msgs_enable is set but /var/msgs' \
"doesn't exist"
- rc=2
else
echo ""
echo "Cleaning out old system announcements:"
@@ -27,9 +21,7 @@
[ -n "$daily_clean_msgs_days" ] &&
arg=-${daily_clean_msgs_days#-} || arg=
msgs -c $arg && rc=0 || rc=3
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/140.clean-rwho
===================================================================
--- etc/periodic/daily/140.clean-rwho (revision 243747)
+++ etc/periodic/daily/140.clean-rwho (working copy)
@@ -5,49 +5,37 @@
# Remove stale files in /var/rwho
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_clean_rwho_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_clean_rwho_enable; then
if [ -z "$daily_clean_rwho_days" ]
then
- echo '$daily_clean_rwho_enable is enabled but' \
+ err 2 '$daily_clean_rwho_enable is enabled but' \
'$daily_clean_rwho_days is not set'
- rc=2
elif [ ! -d /var/rwho ]
then
- echo '$daily_clean_rwho_enable is enabled but /var/rwho' \
+ err 2 '$daily_clean_rwho_enable is enabled but /var/rwho' \
"doesn't exist"
- rc=2
else
- echo ""
- echo "Removing stale files from /var/rwho:"
+ if checkyesno daily_clean_rwho_verbose; then
+ echo ""
+ echo "Removing stale files from /var/rwho:"
- case "$daily_clean_rwho_verbose" in
- [Yy][Ee][Ss])
- print=-print;;
- *)
- print=;;
- esac
-
+ print=-print
+ else
+ print=
+ fi
if cd /var/rwho
then
rc=$(find . ! -name . -mtime +$daily_clean_rwho_days \
-delete $print | tee /dev/stderr | wc -l)
- [ -z "$print" ] && rc=0
[ $rc -gt 1 ] && rc=1
else
rc=3
fi
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/150.clean-hoststat
===================================================================
--- etc/periodic/daily/150.clean-hoststat (revision 243747)
+++ etc/periodic/daily/150.clean-hoststat (working copy)
@@ -5,25 +5,18 @@
# Remove stale persistent host status files
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]; then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_clean_hoststat_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_clean_hoststat_enable; then
if [ -z "$(hoststat 2>&1)" ]; then
rc=2
else
echo ""
echo "Removing stale entries from sendmail host status cache:"
- rc=0
purgestat || rc=1
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/200.backup-passwd
===================================================================
--- etc/periodic/daily/200.backup-passwd (revision 243747)
+++ etc/periodic/daily/200.backup-passwd (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_backup_passwd_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_backup_passwd_enable; then
if [ ! -f /etc/master.passwd ]
then
echo '$daily_backup_passwd_enable" is set but /etc/master.passwd' \
@@ -25,7 +20,6 @@
rc=2
else
bak=/var/backups
- rc=0
echo ""
echo "Backup passwd and group files:"
@@ -69,9 +63,7 @@
echo "Verifying group file syntax:"
chkgrp /etc/group || rc=3
fi
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/210.backup-aliases
===================================================================
--- etc/periodic/daily/210.backup-aliases (revision 243747)
+++ etc/periodic/daily/210.backup-aliases (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_backup_aliases_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_backup_aliases_enable; then
if [ ! -f /etc/mail/aliases ]
then
echo '$daily_backup_aliases_enable is enabled but' \
@@ -20,7 +15,6 @@
rc=2
else
bak=/var/backups
- rc=0
echo ""
echo "Backing up mail aliases:"
@@ -31,17 +25,14 @@
cp -p /etc/mail/aliases $bak/aliases.bak || rc=3
fi
- if ! cmp -s $bak/aliases.bak /etc/mail/aliases
+ if [ $rc -eq 0 ] && ! cmp -s $bak/aliases.bak /etc/mail/aliases
then
- [ $rc -lt 1 ] && rc=1
echo "$host aliases diffs:"
diff -u $bak/aliases.bak /etc/mail/aliases
mv $bak/aliases.bak $bak/aliases.bak2
cp -p /etc/mail/aliases $bak/aliases.bak || rc=3
fi
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/220.backup-pkgdb
===================================================================
--- etc/periodic/daily/220.backup-pkgdb (revision 243747)
+++ etc/periodic/daily/220.backup-pkgdb (working copy)
@@ -3,18 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
rc=0
-case "$daily_backup_pkgdb_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_backup_pkgdb_enable; then
bak="${daily_backup_pkgdb_dir:-/var/backups}"
bak_file="${bak}/pkgdb.bak.tbz"
@@ -23,10 +16,10 @@
if [ ! -d "$bak" ]
then
- install -d -o root -g wheel -m 750 $bak || {
- echo '$daily_backup_pkgdb_enable is enabled but' \
- "$daily_backup_pkgdb_dir doesn't exist" ;
- exit 2 ; }
+ if ! install -d -o root -g wheel -m 750 $bak; then
+ err 2 '$daily_backup_pkgdb_enable is enabled but' \
+ "$daily_backup_pkgdb_dbdir doesn't exist" ;
+ fi
fi
echo ''
@@ -45,7 +38,7 @@
mv "${new_bak_file}" "${bak_file}"
else
rc=3
- fi ;;
-esac
+ fi
+fi
exit $rc
Index: etc/periodic/daily/300.calendar
===================================================================
--- etc/periodic/daily/300.calendar (revision 243747)
+++ etc/periodic/daily/300.calendar (working copy)
@@ -8,22 +8,15 @@
# or run it from your ~/.profile or ~/.login.
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_calendar_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_calendar_enable; then
echo ""
echo "Running calendar:"
- calendar -a && rc=0 || rc=3;;
+ calendar -a && rc=0 || rc=3
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/310.accounting
===================================================================
--- etc/periodic/daily/310.accounting (revision 243747)
+++ etc/periodic/daily/310.accounting (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_accounting_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_accounting_enable; then
if [ ! -f /var/account/acct ]
then
echo '$daily_accounting_enable is set but /var/account/acct' \
@@ -28,7 +23,6 @@
echo "Rotating accounting logs and gathering statistics:"
cd /var/account
- rc=0
n=$(( $daily_accounting_save - 1 ))
for f in acct.*; do
@@ -53,13 +47,10 @@
sa -s $daily_accounting_flags /var/account/acct.merge || rc=3
rm acct.merge
- case "$daily_accounting_compress" in
- [Yy][Ee][Ss])
- gzip -f acct.0 || rc=3;;
- esac
- fi;;
+ if checkyesno daily_accounting_compress; then
+ gzip -f acct.0 || rc=3
+ fi
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/330.news
===================================================================
--- etc/periodic/daily/330.news (revision 243747)
+++ etc/periodic/daily/330.news (working copy)
@@ -6,29 +6,21 @@
# (This is present only for backwards compatibility, usually the news
# system handles this on its own).
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_news_expire_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_news_expire_enable; then
if [ ! -f /etc/news.expire ]
then
- echo '$daily_news_expire_enable is set but /etc/news.expire' \
+ err 2 '$daily_news_expire_enable is set but /etc/news.expire' \
"doesn't exist"
- rc=2
else
echo ""
echo "Running news.expire:"
/etc/news.expire && rc=0 || rc=3
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/400.status-disks
===================================================================
--- etc/periodic/daily/400.status-disks (revision 243747)
+++ etc/periodic/daily/400.status-disks (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_disks_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_disks_enable; then
echo ""
echo "Disk status:"
@@ -27,9 +22,10 @@
echo ""
dump W || rc=3
fi
+
+ echo ""
+ dump W || rc=3
;;
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/404.status-zfs
===================================================================
--- etc/periodic/daily/404.status-zfs (revision 243747)
+++ etc/periodic/daily/404.status-zfs (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_zfs_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_zfs_enable; then
echo
echo 'Checking status of zfs pools:'
@@ -35,11 +30,6 @@
else
rc=1
fi
- ;;
+fi
- *)
- rc=0
- ;;
-esac
-
exit $rc
Index: etc/periodic/daily/405.status-ata-raid
===================================================================
--- etc/periodic/daily/405.status-ata-raid (revision 243747)
+++ etc/periodic/daily/405.status-ata-raid (working copy)
@@ -1,33 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD$
-#
-
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
-case "$daily_status_ata_raid_enable" in
- [Yy][Ee][Ss])
- echo
- echo 'Checking status of ATA raid partitions:'
-
- rc=0
- for raid in `find /dev/ -name 'ar[0-9]*' -type c | egrep '[0-9]$' \
- | egrep -v 's[0-9]' | cut -d / -f 3`
- do
- status=`/sbin/atacontrol status $raid`
- echo $status
- raid_rc=`echo $status | grep -v READY | wc -l`
- [ $rc -eq 0 ] && [ $raid_rc -gt 0 ] && rc=3
- done
- ;;
-
- *) rc=0;;
-esac
-
-exit $rc
Index: etc/periodic/daily/406.status-gmirror
===================================================================
--- etc/periodic/daily/406.status-gmirror (revision 243747)
+++ etc/periodic/daily/406.status-gmirror (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_gmirror_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_gmirror_enable; then
echo
echo 'Checking status of gmirror(8) devices:'
@@ -20,15 +15,10 @@
components="$(gmirror status -s | fgrep -v COMPLETE)"
if [ "${components}" ]; then
rc=3
- else
- rc=0
fi
else
rc=2
fi
- ;;
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/407.status-graid3
===================================================================
--- etc/periodic/daily/407.status-graid3 (revision 243747)
+++ etc/periodic/daily/407.status-graid3 (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_graid3_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_graid3_enable; then
echo
echo 'Checking status of graid3(8) devices:'
@@ -20,15 +15,10 @@
components="$(graid3 status -s | fgrep -v COMPLETE)"
if [ "${components}" ]; then
rc=3
- else
- rc=0
fi
else
rc=2
fi
- ;;
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/408.status-gstripe
===================================================================
--- etc/periodic/daily/408.status-gstripe (revision 243747)
+++ etc/periodic/daily/408.status-gstripe (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_gstripe_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_gstripe_enable; then
echo
echo 'Checking status of gstripe(8) devices:'
@@ -20,15 +15,10 @@
components="$(gstripe status -s | fgrep -v UP)"
if [ "${components}" ]; then
rc=3
- else
- rc=0
fi
else
rc=2
fi
- ;;
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/409.status-gconcat
===================================================================
--- etc/periodic/daily/409.status-gconcat (revision 243747)
+++ etc/periodic/daily/409.status-gconcat (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_gconcat_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_gconcat_enable; then
echo
echo 'Checking status of gconcat(8) devices:'
@@ -20,15 +15,10 @@
components="$(gconcat status -s | fgrep -v UP)"
if [ "${components}" ]; then
rc=3
- else
- rc=0
fi
else
rc=2
fi
- ;;
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/420.status-network
===================================================================
--- etc/periodic/daily/420.status-network (revision 243747)
+++ etc/periodic/daily/420.status-network (working copy)
@@ -3,27 +3,20 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_network_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_network_enable; then
echo ""
echo "Network interface status:"
- case "$daily_status_network_usedns" in
- [Yy][Ee][Ss])
- netstat -id && rc=0 || rc=3;;
- *)
- netstat -idn && rc=0 || rc=3;;
- esac;;
+ if checkyesno daily_status_network_usedns; then
+ netstat_flags="-i"
+ else
+ netstat_flags="-in"
+ fi
+ netstat $netstat_flags || rc=3
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/430.status-rwho
===================================================================
--- etc/periodic/daily/430.status-rwho (revision 243747)
+++ etc/periodic/daily/430.status-rwho (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_rwho_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_rwho_enable; then
rwho=$(echo /var/rwho/*)
if [ -f "${rwho%% *}" ]
then
@@ -24,15 +19,13 @@
echo "Local system status:"
prog=uptime
fi
- rc=$($prog | tee /dev/stderr | wc -l)
+ n=$($prog | tee /dev/stderr | wc -l)
if [ $? -eq 0 ]
then
- [ $rc -gt 1 ] && rc=1
+ [ $n -gt 1 ] && rc=1
else
rc=3
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/440.status-mailq
===================================================================
--- etc/periodic/daily/440.status-mailq (revision 243747)
+++ etc/periodic/daily/440.status-mailq (working copy)
@@ -3,64 +3,53 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_mailq_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_mailq_enable; then
if [ ! -x /usr/bin/mailq ]
then
- echo '$daily_status_mailq_enable is set but /usr/bin/mailq' \
+ err 2 '$daily_status_mailq_enable is set but /usr/bin/mailq' \
"isn't executable"
- rc=2
else
echo ""
echo "Mail in local queue:"
- rc=$(case "$daily_status_mailq_shorten" in
- [Yy][Ee][Ss])
+ n=$(if checkyesno daily_status_mailq_shorten; then
mailq |
egrep -e '^[[:space:]]+[^[:space:]]+@' |
sort |
uniq -c |
sort -nr |
- awk '$1 >= 1 {print $1, $2}';;
- *)
- mailq;;
- esac | tee /dev/stderr |
+ awk '$1 >= 1 {print $1, $2}'
+ else
+ mailq
+ fi | tee /dev/stderr |
egrep -v '(mqueue is empty|Total requests)' | wc -l)
- [ $rc -gt 0 ] && rc=1 || rc=0
+ [ $n -gt 0 ] && rc=1
- case "$daily_status_include_submit_mailq" in
- [Yy][Ee][Ss])
+ if checkyesno daily_status_include_submit_mailq; then
if [ -f /etc/mail/submit.cf ]
then
echo ""
echo "Mail in submit queue:"
- rc_submit=$(case "$daily_status_mailq_shorten" in
- [Yy][Ee][Ss])
+ n=$(if checkyesno daily_status_mailq_shorten; then
mailq -Ac |
egrep -e '^[[:space:]]+[^[:space:]]+@' |
sort |
uniq -c |
sort -nr |
- awk '$1 >= 1 {print $1, $2}';;
- *)
- mailq -Ac;;
- esac | tee /dev/stderr |
+ awk '$1 >= 1 {print $1, $2}'
+ else
+ mailq -Ac
+ fi | tee /dev/stderr |
egrep -v '(mqueue is empty|Total requests)' | wc -l)
- [ $rc_submit -gt 0 ] && rc=1
- fi;;
- esac
- fi;;
+ [ $n -gt 0 ] && rc=1
+ fi
+ fi
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/450.status-security
===================================================================
--- etc/periodic/daily/450.status-security (revision 243747)
+++ etc/periodic/daily/450.status-security (working copy)
@@ -3,39 +3,31 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_security_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_security_enable; then
echo ""
echo "Security check:"
- case "$daily_status_security_inline" in
- [Yy][Ee][Ss])
+ if checkyesno daily_status_security_inline; then
export security_output="";;
- *)
+ else
export security_output="${daily_status_security_output}"
case "${daily_status_security_output}" in
"")
rc=3;;
/*)
echo " (output logged separately)"
- rc=0;;
+ ;;
*)
echo " (output mailed separately)"
- rc=0;;
- esac;;
- esac
+ ;;
+ esac
+ fi
- periodic security || rc=3;;
+ periodic security || rc=3
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/460.status-mail-rejects
===================================================================
--- etc/periodic/daily/460.status-mail-rejects (revision 243747)
+++ etc/periodic/daily/460.status-mail-rejects (working copy)
@@ -3,36 +3,29 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
+. /etc/periodic.subr
+
+rc=0
+
+if checkyesno daily_status_mail_rejects_shorten; then
+ shorten='cut -d" " -f2,3'
+else
+ shorten=cat
fi
-case "$daily_status_mail_rejects_shorten" in
-[Yy][Ee][Ss]) shorten='cut -d" " -f2,3';;
-*) shorten=cat;;
-esac
-
-case "$daily_status_mail_rejects_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_mail_rejects_enable; then
if [ ! -d /etc/mail ]
then
- echo '$daily_status_mail_rejects_enable is set but /etc/mail' \
+ err 2 '$daily_status_mail_rejects_enable is set but /etc/mail' \
"doesn't exist"
- rc=2
elif [ ! -f /var/log/maillog ]
then
- echo '$daily_status_mail_rejects_enable is set but ' \
+ err 2 '$daily_status_mail_rejects_enable is set but ' \
"/var/log/maillog doesn't exist"
- rc=2
elif [ "$daily_status_mail_rejects_logs" -le 0 ]
then
- echo '$daily_status_mail_rejects_enable is set but ' \
+ err 2 '$daily_status_mail_rejects_enable is set but ' \
'$daily_status_mail_rejects_logs is not greater than zero'
- rc=2
else
echo
echo Checking for rejected mail hosts:
@@ -65,9 +58,7 @@
:end
}' | eval $shorten | sort -f | uniq -ic | sort -fnr | tee /dev/stderr | wc -l)
[ $rc -gt 0 ] && rc=1
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/470.status-named
===================================================================
--- etc/periodic/daily/470.status-named (revision 243747)
+++ etc/periodic/daily/470.status-named (working copy)
@@ -3,43 +3,24 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-catmsgs() {
- find /var/log -name 'messages.*' -mtime -2 |
- sort -t. -r -n -k 2,2 |
- while read f
- do
- case $f in
- *.gz) zcat -f $f;;
- *.bz2) bzcat -f $f;;
- esac
- done
- [ -f /var/log/messages ] && cat /var/log/messages
-}
+rc=0
-case "$daily_status_named_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_named_enable; then
echo
echo 'Checking for denied zone transfers (AXFR and IXFR):'
start=`date -v-1d '+%b %e'`
- rc=$(catmsgs |
+ rc=$(catlogs /var/log "messages" |
fgrep -E "^$start.*named\[[[:digit:]]+\]: transfer of .*failed .*: REFUSED" |
sed -e "s/.*transfer of \'\(.*\)\/IN\' from \(.*\)#[0-9]*: .*/\1 from \2/" |
sort -f | uniq -ic | (
- usedns=0
- case "$daily_status_named_usedns" in
- '') ;;
- [yY][eE][sS]) usedns=1 ;;
- esac
-
+ if checkyesno daily_status_named_usedns; then
+ usedns=1
+ else
+ usedns=0
+ fi
while read line ;do
ipaddr=`echo "$line" | sed -e 's/^.*from //'`
if [ $usedns -eq 1 ]; then
@@ -54,9 +35,6 @@
done ) | \
tee /dev/stderr | wc -l)
[ $rc -gt 0 ] && rc=1
- ;;
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/480.status-ntpd
===================================================================
--- etc/periodic/daily/480.status-ntpd (revision 243747)
+++ etc/periodic/daily/480.status-ntpd (working copy)
@@ -3,18 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
rc=0
-case "$daily_status_ntpd_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_ntpd_enable; then
echo ""
echo "NTP status:"
@@ -22,7 +15,6 @@
if [ -z "$synchronized" ]; then
rc=1
fi
- ;;
-esac
+fi
exit $rc
Index: etc/periodic/daily/490.status-pkg-changes
===================================================================
--- etc/periodic/daily/490.status-pkg-changes (revision 243747)
+++ etc/periodic/daily/490.status-pkg-changes (working copy)
@@ -3,22 +3,16 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]; then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_pkg_changes_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_pkg_changes_enable; then
if [ ! -f /usr/sbin/pkg_info ]; then
- echo '$daily_status_pkg_changes_enable is enabled but' \
+ err 2 '$daily_status_pkg_changes_enable is enabled but' \
"/usr/sbin/pkg_info doesn't exist"
- rc=2
else
bak=/var/backups
- rc=0
if [ -f $bak/pkg_info.bak ]; then
mv -f $bak/pkg_info.bak $bak/pkg_info.bak2
@@ -33,11 +27,6 @@
| grep '^[-+][^-+]' | sort -k 1.2
fi
fi
- ;;
+fi
- *)
- rc=0
- ;;
-esac
-
exit $rc
Index: etc/periodic/daily/500.queuerun
===================================================================
--- etc/periodic/daily/500.queuerun (revision 243747)
+++ etc/periodic/daily/500.queuerun (working copy)
@@ -3,34 +3,22 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_queuerun_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_queuerun_enable; then
if [ ! -x /usr/sbin/sendmail ]
then
- echo '$daily_queuerun_enable is set but /usr/sbin/sendmail' \
+ err 2 '$daily_queuerun_enable is set but /usr/sbin/sendmail' \
"isn't executable"
- rc=2
- else
- /usr/sbin/sendmail -q >/dev/null 2>&1 &
- case "$daily_submit_queuerun" in
- [Yy][Ee][Ss])
- if [ -f /etc/mail/submit.cf ]
- then
- /usr/sbin/sendmail -q -Ac >/dev/null 2>&1 &
- fi;;
- esac
- rc=0
- fi;;
+ fi
+ /usr/sbin/sendmail -q >/dev/null 2>&1 &
+ if checkyesno daily_submit_queuerun; then
+ if [ -f /etc/mail/submit.cf ]; then
+ /usr/sbin/sendmail -q -Ac >/dev/null 2>&1 &
+ fi
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/daily/800.scrub-zfs
===================================================================
--- etc/periodic/daily/800.scrub-zfs (revision 243747)
+++ etc/periodic/daily/800.scrub-zfs (working copy)
@@ -3,22 +3,13 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
+. /etc/periodic.subr
-newline="
-" # A single newline
+newline=$(echo -ne "\n")
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+rc=0
-: ${daily_scrub_zfs_default_threshold=35}
-
-case "$daily_scrub_zfs_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_scrub_zfs_enable; then
echo
echo 'Scrubbing of zfs pools:'
@@ -26,7 +17,6 @@
daily_scrub_zfs_pools="$(zpool list -H -o name)"
fi
- rc=0
for pool in ${daily_scrub_zfs_pools}; do
# sanity check
_status=$(zpool list "${pool}" 2> /dev/null)
@@ -88,11 +78,6 @@
echo " consult 'zpool status ${pool}' for the result"
done
- ;;
+fi
- *)
- rc=0
- ;;
-esac
-
exit $rc
Index: etc/periodic/daily/999.local
===================================================================
--- etc/periodic/daily/999.local (revision 243747)
+++ etc/periodic/daily/999.local (working copy)
@@ -6,13 +6,7 @@
# compatibility more than anything else.
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
rc=0
for script in $daily_local
Index: etc/periodic/daily/Makefile
===================================================================
--- etc/periodic/daily/Makefile (revision 243747)
+++ etc/periodic/daily/Makefile (working copy)
@@ -9,7 +9,6 @@
220.backup-pkgdb \
330.news \
400.status-disks \
- 405.status-ata-raid \
406.status-gmirror \
407.status-graid3 \
408.status-gstripe \
Index: etc/periodic/monthly/200.accounting
===================================================================
--- etc/periodic/monthly/200.accounting (revision 243747)
+++ etc/periodic/monthly/200.accounting (working copy)
@@ -3,20 +3,13 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-oldmask=$(umask)
+rc=0
+
umask 066
-case "$monthly_accounting_enable" in
- [Yy][Ee][Ss])
+if checkyesno monthly_accounting_enable; then
W=/var/log/utx.log
- rc=0
remove=NO
if [ ! -f $W.0 ]
then
@@ -29,23 +22,20 @@
remove=YES
bzcat $W.0.bz2 > $W.0 || rc=1
else
- echo '$monthly_accounting_enable is set but' \
+ err 2 '$monthly_accounting_enable is set but' \
"$W.0 doesn't exist"
- rc=2
fi
fi
if [ $rc -eq 0 ]
then
- echo ""
- echo "Doing login accounting:"
-
+ if checkyesno monthly_accounting_verbose; then
+ echo ""
+ echo "Doing login accounting:"
+ fi
rc=$(ac -p -w $W.0 | 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 $W.0
+fi
- *) rc=0;;
-esac
-
-umask $oldmask
exit $rc
Index: etc/periodic/monthly/999.local
===================================================================
--- etc/periodic/monthly/999.local (revision 243747)
+++ etc/periodic/monthly/999.local (working copy)
@@ -3,15 +3,10 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.conf
rc=0
+
for script in $monthly_local
do
echo ''
Index: etc/periodic/security/100.chksetuid
===================================================================
--- etc/periodic/security/100.chksetuid (revision 243747)
+++ etc/periodic/security/100.chksetuid (working copy)
@@ -27,20 +27,12 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
rc=0
-case "$daily_status_security_chksetuid_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_security_chksetuid_enable; then
echo ""
echo 'Checking setuid files and devices:'
MP=`mount -t ufs,zfs | awk '$0 !~ /no(suid|exec)/ { print $3 }'`
@@ -49,10 +41,6 @@
\( -perm -u+s -or -perm -g+s \) -exec ls -liTd \{\} \+ |
check_diff setuid - "${host} setuid diffs:"
rc=$?
- ;;
- *)
- rc=0
- ;;
-esac
+fi
exit $rc
Index: etc/periodic/security/110.neggrpperm
===================================================================
--- etc/periodic/security/110.neggrpperm (revision 243747)
+++ etc/periodic/security/110.neggrpperm (working copy)
@@ -27,18 +27,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
rc=0
-case "$daily_status_security_neggrpperm_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_security_neggrpperm_enable; then
echo ""
echo 'Checking negative group permissions:'
MP=`mount -t ufs,zfs | awk '$0 !~ /no(suid|exec)/ { print $3 }'`
@@ -47,8 +40,7 @@
\( ! -perm +020 -and -perm +002 \) -or \
\( ! -perm +040 -and -perm +004 \) \) \
-exec ls -liTd \{\} \+ | tee /dev/stderr | wc -l)
- [ $n -gt 0 ] && rc=1 || rc=0
- ;;
-esac
+ [ $n -gt 0 ] && rc=1
+fi
exit $rc
Index: etc/periodic/security/200.chkmounts
===================================================================
--- etc/periodic/security/200.chkmounts (revision 243747)
+++ etc/periodic/security/200.chkmounts (working copy)
@@ -30,33 +30,27 @@
# Show changes in the way filesystems are mounted
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
ignore="${daily_status_security_chkmounts_ignore}"
+
rc=0
-case "$daily_status_security_chkmounts_enable" in
- [Yy][Ee][Ss])
- case "$daily_status_security_noamd" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_security_chkmounts_enable; then
+ if checkyesno daily_status_security_noamd; then
ignore="${ignore}|^amd:"
- esac
- [ -n "$ignore" ] && cmd="egrep -v ${ignore#|}" || cmd=cat
- if ! [ -f /etc/fstab ]; then
+ fi
+ if [ -n "$ignore" ]; then
+ cmd="egrep -v ${ignore#|}"
+ else
+ cmd=cat
+ fi
+ if [ ! -f /etc/fstab ]; then
export PATH_FSTAB=/dev/null
fi
mount -p | sort | ${cmd} |
check_diff mount - "${host} changes in mounted filesystems:"
- rc=$?;;
- *) rc=0;;
-esac
-
-exit "$rc"
+ rc=$?
+fi
+exit $rc
Index: etc/periodic/security/300.chkuid0
===================================================================
--- etc/periodic/security/300.chkuid0 (revision 243747)
+++ etc/periodic/security/300.chkuid0 (working copy)
@@ -27,25 +27,18 @@
# $FreeBSD$
#
+. /etc/periodic.subr
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+rc=0
-case "$daily_status_security_chkuid0_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_security_chkuid0_enable; then
echo ""
echo 'Checking for uids of 0:'
n=$(awk -F: '/^#/ {next} $3==0 {print $1,$3}' /etc/master.passwd |
tee /dev/stderr |
sed -e '/^root 0$/d' -e '/^toor 0$/d' |
wc -l)
- [ $n -gt 0 ] && rc=1 || rc=0;;
- *) rc=0;;
-esac
+ [ $n -gt 0 ] && rc=1
+fi
-exit "$rc"
+exit $rc
Index: etc/periodic/security/400.passwdless
===================================================================
--- etc/periodic/security/400.passwdless (revision 243747)
+++ etc/periodic/security/400.passwdless (working copy)
@@ -27,22 +27,16 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_security_passwdless_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_security_passwdless_enable; then
echo ""
echo 'Checking for passwordless accounts:'
n=$(awk -F: 'NF > 1 && $1 !~ /^[#+-]/ && $2=="" {print $0}' /etc/master.passwd |
tee /dev/stderr | wc -l)
- [ $n -gt 0 ] && rc=1 || rc=0;;
- *) rc=0;;
-esac
+ [ $n -gt 0 ] && rc=1
+fi
-exit "$rc"
+exit $rc
Index: etc/periodic/security/410.logincheck
===================================================================
--- etc/periodic/security/410.logincheck (revision 243747)
+++ etc/periodic/security/410.logincheck (working copy)
@@ -27,26 +27,16 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$daily_status_security_logincheck_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno daily_status_security_logincheck_enable; then
echo ""
echo 'Checking login.conf permissions:'
- if [ -G /etc/login.conf -a -O /etc/login.conf ]; then
- n=0
- else
- echo "Bad ownership of /etc/login.conf"
- n=1
+ if ! [ -G /etc/login.conf -a -O /etc/login.conf ]; then
+ err 1 "Bad ownership of /etc/login.conf"
fi
- [ $n -gt 0 ] && rc=1 || rc=0;;
- *) rc=0;;
-esac
+fi
-exit "$rc"
+exit $rc
Index: etc/periodic/security/460.chkportsum
===================================================================
--- etc/periodic/security/460.chkportsum (revision 243747)
+++ etc/periodic/security/460.chkportsum (working copy)
@@ -27,42 +27,40 @@
# $FreeBSD$
#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
rc=0
-echo ""
-echo 'Checking for ports with mismatched checksums:'
-
-case "${daily_status_security_chkportsum_enable}" in
- [Yy][Ee][Ss])
- set -f
- pkg_info -ga 2>/dev/null | \
- while IFS= read -r line; do
- set -- $line
- case $1 in
+if checkyesno daily_status_security_chkportsum_enable; then
+ if TMP=$(mktemp -t chkportsum); then
+ echo ""
+ echo 'Checking for ports with mismatched checksums:'
+ set -f
+ pkg_info -ga 2>/dev/null | \
+ while IFS= read -r line; do
+ set -- $line
+ case $1 in
Information)
- case $2 in
+ case $2 in
for) name="${3%%:}" ;;
*) name='??' ;;
- esac
- ;;
+ esac
+ ;;
Mismatched|'') ;;
*) [ -n "${name}" ] &&
echo "${name}: ${line%% fails the original MD5 checksum}"
- ;;
- esac
- done
- ;;
- *)
- rc=0
- ;;
-esac
+ ;;
+ esac
+ done > $TMP
+ if [ $(wc -l $TMP) -gt 0 ]; then
+ cat $TMP
+ rc=1
+ fi
+ rm -f $TMP
+ else
+ rc=3
+ fi
+fi
exit $rc
Index: etc/periodic/security/500.ipfwdenied
===================================================================
--- etc/periodic/security/500.ipfwdenied (revision 243747)
+++ etc/periodic/security/500.ipfwdenied (working copy)
@@ -27,27 +27,24 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
rc=0
-case "$daily_status_security_ipfwdenied_enable" in
- [Yy][Ee][Ss])
- TMP=`mktemp -t security`
- if ipfw -a list 2>/dev/null | egrep "deny|reset|unreach" > ${TMP}; then
- check_diff new_only ipfw ${TMP} "${host} ipfw denied packets:"
+if checkyesno daily_status_security_ipfwdenied_enable; then
+ if TMP=$(mktemp -t security); then
+ if ipfw -a list 2>/dev/null | egrep "deny|reset|unreach" > ${TMP}; then
+ check_diff new_only ipfw ${TMP} \
+ "${host} ipfw denied packets:"
+ rc=$?
+ else
+ rc=1
+ fi
+ rm -f ${TMP}
+ else
+ rc=3
fi
- rc=$?
- rm -f ${TMP};;
- *) rc=0;;
-esac
+fi
exit $rc
Index: etc/periodic/security/510.ipfdenied
===================================================================
--- etc/periodic/security/510.ipfdenied (revision 243747)
+++ etc/periodic/security/510.ipfdenied (working copy)
@@ -27,27 +27,23 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
rc=0
-case "$daily_status_security_ipfdenied_enable" in
- [Yy][Ee][Ss])
- TMP=`mktemp -t security`
- if ipfstat -nhio 2>/dev/null | grep block > ${TMP}; then
- check_diff new_only ipf ${TMP} "${host} ipf denied packets:"
+if checkyesno daily_status_security_ipfdenied_enable; then
+ if TMP=$(mktemp -t security); then
+ if ipfstat -nhio 2>/dev/null | grep block > ${TMP}; then
+ check_diff new_only ipf ${TMP} "${host} ipf denied packets:"
+ rc=$?
+ else
+ rc=1
+ fi
+ rm -f ${TMP}
+ else
+ rc=3
fi
- rc=$?
- rm -f ${TMP};;
- *) rc=0;;
-esac
+fi
exit $rc
Index: etc/periodic/security/520.pfdenied
===================================================================
--- etc/periodic/security/520.pfdenied (revision 243747)
+++ etc/periodic/security/520.pfdenied (working copy)
@@ -27,27 +27,32 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
rc=0
-case "$daily_status_security_pfdenied_enable" in
- [Yy][Ee][Ss])
- TMP=`mktemp -t security`
- if pfctl -sr -v 2>/dev/null | nawk '{if (/^block/) {buf=$0; getline; gsub(" +"," ",$0); print buf$0;} }' > ${TMP}; then
- check_diff new_only pf ${TMP} "${host} pf denied packets:"
+if checkyesno daily_status_security_pfdenied_enable; then
+ if TMP=$(mktemp -t security); then
+ pfctl -sr -v 2>/dev/null | \
+ nawk '{
+ if (/^block/) {
+ buf=$0;
+ getline;
+ gsub(" +"," ",$0);
+ print buf$0;
+ }
+ }' > ${TMP}
+ if [ $? -eq 0 ]; then
+ check_diff new_only pf ${TMP} "${host} pf denied packets:"
+ rc=$?
+ else
+ rc=1
+ fi
+ rm -f ${TMP}
+ else
+ rc=3
fi
- rc=$?
- rm -f ${TMP};;
- *) rc=0;;
-esac
+fi
exit $rc
Index: etc/periodic/security/550.ipfwlimit
===================================================================
--- etc/periodic/security/550.ipfwlimit (revision 243747)
+++ etc/periodic/security/550.ipfwlimit (working copy)
@@ -30,39 +30,33 @@
# Show ipfw rules which have reached the log limit
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
rc=0
-case "$daily_status_security_ipfwlimit_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_security_ipfwlimit_enable; then
IPFW_VERBOSE=`sysctl -n net.inet.ip.fw.verbose 2> /dev/null`
- if [ $? -ne 0 ] || [ "$IPFW_VERBOSE" -eq 0 ]; then
+ if [ $? -ne 0 -o "$IPFW_VERBOSE" -eq 0 ]; then
exit 0
fi
- TMP=`mktemp -t security`
- ipfw -a list | grep " log " | \
- grep '^[[:digit:]]\+[[:space:]]\+[[:digit:]]\+' | \
- awk \
- '{if ($6 == "logamount") {
- if ($2 > $7)
- {print $0}}
- }' > ${TMP}
+ if TMP=`mktemp -t security`; then
+ ipfw -a list | grep " log " | \
+ grep '^[[:digit:]]\+[[:space:]]\+[[:digit:]]\+' | \
+ awk \
+ '{if ($6 == "logamount") {
+ if ($2 > $7)
+ {print $0}}
+ }' > ${TMP}
- if [ -s "${TMP}" ]; then
- rc=1
- echo ""
- echo 'ipfw log limit reached:'
- cat ${TMP}
+ if [ -s "${TMP}" ]; then
+ rc=1
+ echo ""
+ echo 'ipfw log limit reached:'
+ cat ${TMP}
+ fi
+ rm -f ${TMP}
+ else
+ rc=3
fi
- rm -f ${TMP};;
- *) rc=0;;
-esac
-
+fi
exit $rc
Index: etc/periodic/security/610.ipf6denied
===================================================================
--- etc/periodic/security/610.ipf6denied (revision 243747)
+++ etc/periodic/security/610.ipf6denied (working copy)
@@ -27,27 +27,23 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
rc=0
-case "$daily_status_security_ipf6denied_enable" in
- [Yy][Ee][Ss])
- TMP=`mktemp ${TMPDIR:-/tmp}/security.XXXXXXXXXX`
- if ipfstat -nhio6 2>/dev/null | grep block > ${TMP}; then
- check_diff new_only ipf6 ${TMP} "${host} ipf6 denied packets:"
+if checkyesno daily_status_security_ipf6denied_enable; then
+ if TMP=$(mktemp -t security); then
+ if ipfstat -nhio6 2>/dev/null | grep block > ${TMP}; then
+ check_diff new_only ipf6 ${TMP} "${host} ipf6 denied packets:"
+ rc=$?
+ else
+ rc=1
+ fi
+ rm -f ${TMP}
+ else
+ rc=3
fi
- rc=$?
- rm -f ${TMP};;
- *) rc=0;;
-esac
+fi
exit $rc
Index: etc/periodic/security/700.kernelmsg
===================================================================
--- etc/periodic/security/700.kernelmsg (revision 243747)
+++ etc/periodic/security/700.kernelmsg (working copy)
@@ -30,24 +30,15 @@
# Show kernel log messages
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
-
+. /etc/periodic.subr
. /etc/periodic/security/security.functions
rc=0
-case "$daily_status_security_kernelmsg_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_security_kernelmsg_enable; then
dmesg 2>/dev/null |
check_diff new_only dmesg - "${host} kernel log messages:"
- rc=$?;;
- *) rc=0;;
-esac
+ rc=$?
+fi
exit $rc
Index: etc/periodic/security/800.loginfail
===================================================================
--- etc/periodic/security/800.loginfail (revision 243747)
+++ etc/periodic/security/800.loginfail (working copy)
@@ -30,39 +30,20 @@
# Show login failures
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
LOG="${daily_status_security_logdir}"
+rc=0
+
yesterday=`date -v-1d "+%b %e "`
-catmsgs() {
- find ${LOG} -name 'auth.log.*' -mtime -2 |
- sort -t. -r -n -k 2,2 |
- while read f
- do
- case $f in
- *.gz) zcat -f $f;;
- *.bz2) bzcat -f $f;;
- esac
- done
- [ -f ${LOG}/auth.log ] && cat $LOG/auth.log
-}
-
-case "$daily_status_security_loginfail_enable" in
- [Yy][Ee][Ss])
+if checkyesno daily_status_security_loginfail_enable; then
echo ""
echo "${host} login failures:"
- n=$(catmsgs | egrep -ia "^$yesterday.*: .*(fail|invalid|bad|illegal)" |
+ n=$(catlogs $LOG auth | egrep -ia "^$yesterday.*: .*(fail|invalid|bad|illegal)" |
tee /dev/stderr | wc -l)
- [ $n -gt 0 ] && rc=1 || rc=0;;
- *) rc=0;;
-esac
+ [ $n -gt 0 ] && rc=1
+fi
exit $rc
Index: etc/periodic/security/security.functions
===================================================================
--- etc/periodic/security/security.functions (revision 243747)
+++ etc/periodic/security/security.functions (working copy)
@@ -73,6 +73,5 @@
mv ${tmpf} ${LOG}/${label}.today || rc=3
fi
- rm -f ${tmpf}
- exit ${rc}
+ return ${rc}
}
Index: etc/periodic/weekly/310.locate
===================================================================
--- etc/periodic/weekly/310.locate (revision 243747)
+++ etc/periodic/weekly/310.locate (working copy)
@@ -3,30 +3,23 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$weekly_locate_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno weekly_locate_enable; then
echo ""
echo "Rebuilding locate database:"
locdb=/var/db/locate.database
- touch $locdb && rc=0 || rc=3
+ touch $locdb || rc=3
chown nobody $locdb || rc=3
chmod 644 $locdb || rc=3
cd /
echo /usr/libexec/locate.updatedb | nice -n 5 su -fm nobody || rc=3
- chmod 444 $locdb || rc=3;;
+ chmod 444 $locdb || rc=3
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/weekly/320.whatis
===================================================================
--- etc/periodic/weekly/320.whatis (revision 243747)
+++ etc/periodic/weekly/320.whatis (working copy)
@@ -3,21 +3,15 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$weekly_whatis_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno weekly_whatis_enable; then
echo ""
echo "Rebuilding whatis database:"
- MANPATH=`/usr/bin/manpath -q`
- if [ $? = 0 ]
+ if MANPATH=$(/usr/bin/manpath -q)
then
if [ -z "${MANPATH}" ]
then
@@ -25,7 +19,6 @@
rc=3
else
man_locales=`/usr/bin/manpath -qL`
- rc=0
# Build whatis(1) database(s) for original, non-localized
# manpages.
@@ -43,9 +36,7 @@
fi
else
rc=3
- fi;;
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/weekly/330.catman
===================================================================
--- etc/periodic/weekly/330.catman (revision 243747)
+++ etc/periodic/weekly/330.catman (working copy)
@@ -3,56 +3,44 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$weekly_catman_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno weekly_catman_enable; then
if [ ! -d /usr/share/man/cat1 ]
then
- echo '$weekly_catman_enable is set but /usr/share/man/cat1' \
+ err 2 '$weekly_catman_enable is set but /usr/share/man/cat1' \
"doesn't exist"
- rc=2
- else
- echo ""
- echo "Reformatting manual pages:"
+ fi
+ echo ""
+ echo "Reformatting manual pages:"
- MANPATH=`/usr/bin/manpath -q`
- if [ $? = 0 ]
+ if MANPATH=`/usr/bin/manpath -q`
+ then
+ if [ -z "${MANPATH}" ]
then
- if [ -z "${MANPATH}" ]
- then
- echo "manpath failed to find any manpath directories"
- rc=3
- else
- man_locales=`/usr/bin/manpath -qL`
- rc=0
+ err 3 "manpath failed to find any manpath directories"
+ else
+ man_locales=`/usr/bin/manpath -qL`
- # Preformat original, non-localized manpages
- echo /usr/libexec/catman.local -r "$MANPATH" |
- su -fm man || rc=3
+ # Preformat original, non-localized manpages
+ echo /usr/libexec/catman.local -r "$MANPATH" |
+ su -fm man || rc=3
- # Preformat localized manpages.
- if [ -n "$man_locales" ]
- then
- for i in $man_locales
- do
- echo /usr/libexec/catman.local -Lr \
- "$MANPATH" | LC_ALL=$i su -fm man || rc=3
- done
- fi
+ # Preformat localized manpages.
+ if [ -n "$man_locales" ]
+ then
+ for i in $man_locales
+ do
+ echo /usr/libexec/catman.local -Lr \
+ "$MANPATH" | LC_ALL=$i su -fm man || rc=3
+ done
fi
- else
- rc=3
fi
- fi;;
+ else
+ rc=3
+ fi
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/weekly/340.noid
===================================================================
--- etc/periodic/weekly/340.noid (revision 243747)
+++ etc/periodic/weekly/340.noid (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$weekly_noid_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno weekly_noid_enable; then
echo ""
echo "Check for files with an unknown user or group:"
@@ -21,9 +16,6 @@
\( -nogroup -o -nouser \) -print | sed 's/^/ /' |
tee /dev/stderr | wc -l)
[ $rc -gt 1 ] && rc=1
- ;;
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/weekly/400.status-pkg
===================================================================
--- etc/periodic/weekly/400.status-pkg (revision 243747)
+++ etc/periodic/weekly/400.status-pkg (working copy)
@@ -3,16 +3,11 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
-case "$weekly_status_pkg_enable" in
- [Yy][Ee][Ss])
+rc=0
+
+if checkyesno weekly_status_pkg_enable; then
echo ""
echo "Check for out of date packages:"
@@ -25,9 +20,7 @@
-e 's/^\([^ ]*-[^ ]*\) *? *\(orphaned:.*\)$/ \1 was \2/p' |
tee /dev/stderr |
wc -l)
- [ $rc -gt 1 ] && rc=1;;
+ [ $rc -gt 1 ] && rc=1
+fi
- *) rc=0;;
-esac
-
exit $rc
Index: etc/periodic/weekly/999.local
===================================================================
--- etc/periodic/weekly/999.local (revision 243747)
+++ etc/periodic/weekly/999.local (working copy)
@@ -3,15 +3,10 @@
# $FreeBSD$
#
-# If there is a global system configuration file, suck it in.
-#
-if [ -r /etc/defaults/periodic.conf ]
-then
- . /etc/defaults/periodic.conf
- source_periodic_confs
-fi
+. /etc/periodic.subr
rc=0
+
for script in $weekly_local
do
echo ''
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-bugs
mailing list