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

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

Revision 1.30, Wed Feb 12 20:51:49 2020 UTC (4 years, 3 months ago) by jung
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, HEAD
Changes since 1.29: +2 -2 lines

do not propagate TMPDIR and override value from /etc/locate.rc in weekly
effectively reverting r1.9 to follow principal of least surprise

"this is fine" millert
"i agree with direction" schwarze

#
#	$OpenBSD: weekly,v 1.30 2020/02/12 20:51:49 jung 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=-" | \
		    nice -5 su -m nobody 1>$TMP
		if [ $? -ne 0 ]; then
			echo "Rebuilding locate database failed"
		elif ! locate -d $TMP /etc/weekly >/dev/null; then
			echo "Not installing invalid locate database"
		else
			chmod 444 $TMP
			chown root:wheel $TMP
			mv -f $TMP /var/db/locate.database
		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