summaryrefslogtreecommitdiff
path: root/etc/weekly
blob: 28ac1ebb2807a0673e03f1a400056d8d694654e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#
#	$OpenBSD: weekly,v 1.21 2009/05/10 19:27:25 schwarze Exp $
#
umask 022

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

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
	TMP=`mktemp /var/db/locate.database.XXXXXXXXXX`
	if [ $? -eq 0 ]; then
		trap 'rm -f $TMP; exit 1' 0 1 15
		UPDATEDB="/usr/libexec/locate.updatedb"
		echo "${UPDATEDB} --fcodes=- --tmpdir=${TMPDIR:-/var/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:"
makewhatis

# If LOGINACCOUNTING is set to 1 in the environment, report user
# accounting information
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