[BACK]Return to weekly CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / etc

File: [cvs.NetBSD.org] / src / etc / weekly (download)

Revision 1.20, Sun Jun 27 13:51:55 2004 UTC (19 years, 9 months ago) by lukem
Branch: MAIN
CVS Tags: netbsd-3-base, netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: netbsd-3-1, netbsd-3-0, netbsd-3
Changes since 1.19: +2 -2 lines

Run the "su -m nobody -c locate.updatedb" in a subshell with cd / first.
"nobody" doesn't have perms to $WEEKLYDIR which was the cwd previously,
and this may cause a warning to be issued by root's shell as part of the su.

#!/bin/sh -
#
#	$NetBSD: weekly,v 1.20 2004/06/27 13:51:55 lukem Exp $
#	from: @(#)weekly	8.2 (Berkeley) 1/2/94
#

export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/libexec
umask 077

if [ -s /etc/weekly.conf ]; then
	. /etc/weekly.conf
fi

host=`hostname`
date=`date`
rcvar_manpage='weekly.conf(5)'

echo "To: ${MAILTO:-root}"
echo "Subject: $host weekly output for $date"
echo ""

if [ -f /etc/rc.subr ]; then
	. /etc/rc.subr
else
	echo "Can't read /etc/rc.subr; aborting."
	exit 1;
fi

WEEKLYDIR=`mktemp -d /tmp/_weekly.XXXXXX` || exit 1

trap "/bin/rm -rf $WEEKLYDIR ; exit 0" EXIT INT QUIT PIPE

if ! cd "$WEEKLYDIR"; then
	echo "Can not cd to $WEEKLYDIR".
	exit 1
fi

TMP=weekly.$$

#echo ""
#echo "Removing old .o files:"
#find /usr/src -name '*.o' -atime +21 -print -a -exec rm -f {} \;

# see if /usr/src exists and is local
# before looking there for checked-out files

#if [ -d /usr/src -a \
#  -n "`find -f /usr/src ! -fstype local -prune -or -type d -print -prune`" ];
#then
#	echo ""
#	echo "Looking for checked out files:"
#
#	TDIR=`mktemp -d /tmp/_checkout.XXXXXX` || exit 1
#	trap "/bin/rm -rf $TDIR ; exit 0" EXIT INT QUIT
#	for file in `find -f /usr/src ! -fstype local -prune -or \
#	    -name 'p.*' -print | egrep 'SCCS/p\.'`; do
#		owner=`awk '{ print $3 }' $file`
#		echo "$owner	$file"
#		echo $file >> "$TDIR/$owner"
#	done | sed -e 's,SCCS/p.,,'
#	if test -n "`ls $TDIR`"; then
#		for file in $TDIR/*; do
#			sed -e 's,SCCS/p.,,' $file | \
#			    Mail -s 'checked out files' ${file##*/}
#		done
#	fi
#fi

if checkyesno clean_uucp && [ -f /usr/libexec/uucp/clean.weekly ]; then
	echo ""
	echo "Cleaning up UUCP:"
	su daemon -c /usr/libexec/uucp/clean.weekly
fi

if checkyesno rebuild_locatedb; then
	echo ""
	if [ -f /var/db/locate.database ]; then
		echo "Rebuilding locate database:"
		chmod 644 /var/db/locate.database
		chown nobody:nobody /var/db/locate.database
		(cd / && nice -5 su -m nobody -c /usr/libexec/locate.updatedb 2>/dev/null)
		chown root:wheel /var/db/locate.database
	else
		echo "Not rebuilding locate database; no /var/db/locate.database"
	fi
fi

if [ -f /etc/weekly.local ]; then
	. /etc/weekly.local > $TMP 2>&1
	if [ -s $TMP ] ; then
		printf "\nRunning /etc/weekly.local:\n"
		cat $TMP
	fi
	rm -f $TMP
fi