version 1.19, 2007/02/02 14:52:48 |
version 1.20, 2009/05/09 17:15:49 |
|
|
#!/bin/sh - |
|
# |
# |
# $OpenBSD$ |
# $OpenBSD$ |
# |
# |
|
|
PATH=/bin:/sbin:/usr/sbin:/usr/bin:/usr/libexec |
PATH=/bin:/sbin:/usr/sbin:/usr/bin:/usr/libexec |
export PATH |
export PATH |
|
|
if [ -f /etc/weekly.local ]; then |
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 "" |
echo "Running weekly.local:" |
echo "$TITLE" |
. /etc/weekly.local |
cat $PARTOUT |
fi |
} |
|
|
echo "" |
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 /etc/weekly.local:" |
|
run_script "weekly.local" |
|
|
|
next_part "Rebuilding locate database:" |
if [ -f /var/db/locate.database ]; then |
if [ -f /var/db/locate.database ]; then |
TMP=`mktemp /var/db/locate.database.XXXXXXXXXX` |
TMP=`mktemp /var/db/locate.database.XXXXXXXXXX` |
if [ $? -eq 0 ]; then |
if [ $? -eq 0 ]; then |
trap 'rm -f $TMP; exit 1' 0 1 15 |
trap 'rm -f $TMP; exit 1' 0 1 15 |
echo "Rebuilding locate database:" |
|
UPDATEDB="/usr/libexec/locate.updatedb" |
UPDATEDB="/usr/libexec/locate.updatedb" |
echo "${UPDATEDB} --fcodes=- --tmpdir=${TMPDIR:-/var/tmp}" | \ |
echo "${UPDATEDB} --fcodes=- --tmpdir=${TMPDIR:-/var/tmp}" | \ |
nice -5 su -m nobody 2>/dev/null 1>$TMP |
nice -5 su -m nobody 2>/dev/null 1>$TMP |
|
|
else |
else |
echo "Not rebuilding locate database; can't create temp file" |
echo "Not rebuilding locate database; can't create temp file" |
fi |
fi |
else |
|
echo "Not rebuilding locate database; no /var/db/locate.database" |
|
fi |
fi |
|
|
echo "" |
next_part "Rebuilding whatis databases:" |
echo "Rebuilding whatis databases:" |
|
makewhatis |
makewhatis |
|
|
# If LOGINACCOUNTING is set to 1 in the environment, report user |
# If LOGINACCOUNTING is set to 1 in the environment, report user |
# accounting information |
# accounting information |
|
next_part "Doing login accounting:" |
[ "X$LOGINACCOUNTING" = X1 ] && { |
[ "X$LOGINACCOUNTING" = X1 ] && { |
echo "" |
|
echo "Doing login accounting:" |
|
ac -p | sort -nr -k 2 |
ac -p | sort -nr -k 2 |
} |
} |
|
|
|
end_part |
|
rm -f $PARTOUT |
|
|
|
[ -s $MAINOUT ] && mail -s "`hostname` weekly output" root < $MAINOUT |