[BACK]Return to weekly CVS log [TXT][DIR] Up to [local] / src / etc

File: [local] / src / etc / weekly (download)

Revision 1.28, Sat Apr 15 13:12:08 2017 UTC (7 years, 1 month ago) by schwarze
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.27: +2 -2 lines

Build full mandoc.db(5) databases by default using makewhatis(8)
without -Q during the build and in weekly(8).  According to tests
by many developers, makewhatis(8) takes a few minutes at most even
on slower hardware like octeon, loongson, ALIX, RPI3, Soekris,
cubox, softiron etc., and security(8) is often worse than makewhatis(8).

In case this causes excessive weekly(8) run times on even slower
(~50 MHz-class) CPUs, consider adding "MAKEWHATISARGS=-Q" to
/etc/weekly.local on machines that feel unhappy.

OK sthen@ kettenis@ millert@ deraadt@

#
#	$OpenBSD: weekly,v 1.28 2017/04/15 13:12:08 schwarze Exp $
#
# For local additions, create the file /etc/weekly.local.
# To get section headers, use the function next_part in weekly.local.
#
umask 022

PARTOUT=/var/log/weekly.part
MAINOUT=/var/log/weekly.out
install -o 0 -g 0 -m 600    /dev/null $PARTOUT
install -o 0 -g 0 -m 600 -b /dev/null $MAINOUT

start_part() {
	TITLE=$1
	exec > $PARTOUT 2>&1
}

end_part() {
	exec >> $MAINOUT 2>&1
	test -s $PARTOUT || return
	echo ""
	echo "$TITLE"
	cat $PARTOUT
}

next_part() {
	end_part
	start_part "$1"
}

run_script() {
	f=/etc/$1
	test -e $f || return
	if [ `stat -f '%Sp%u' $f | cut -b1,6,9,11-` != '---0' ]; then
		echo "$f has insecure permissions, skipping:"
		ls -l $f
		return
	fi
	. $f
}

start_part "Running weekly.local:"
run_script "weekly.local"

next_part "Rebuilding locate database:"
if [ -f /var/db/locate.database ]; then
	if TMP=`mktemp /var/db/locate.database.XXXXXXXXXX`; then
		trap 'rm -f $TMP; exit 1' 0 1 15
		UPDATEDB="/usr/libexec/locate.updatedb"
		echo "${UPDATEDB} --fcodes=- --tmpdir=${TMPDIR:-/tmp}" | \
		    nice -5 su -m nobody 2>/dev/null 1>$TMP
		if [ -s "$TMP" ]; then
			chmod 444 $TMP
			chown root:wheel $TMP
			mv -f $TMP /var/db/locate.database
		else
			echo "Not installing locate database; zero size"
		fi
	else
		echo "Not rebuilding locate database; can't create temp file"
	fi
fi

next_part "Rebuilding whatis databases:"
/usr/sbin/makewhatis $MAKEWHATISARGS

next_part "Doing login accounting:"
[ "X$LOGINACCOUNTING" = X1 ] && {
	ac -p | sort -nr -k 2
}

end_part
rm -f $PARTOUT

[ -s $MAINOUT ] && mail -s "`hostname` weekly output" root < $MAINOUT