- #
- # $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
|