daily revision 1.21
11.1Scgd#!/bin/sh -
21.1Scgd#
31.21Smikel#	$NetBSD: daily,v 1.21 1997/05/30 05:18:59 mikel Exp $
41.21Smikel#	@(#)daily	8.2 (Berkeley) 1/25/94
51.1Scgd#
61.18Smrg
71.18SmrgPATH=/bin:/usr/bin:/sbin:/usr/sbin
81.20Smikelhost=`hostname`
91.1Scgdecho "Subject: $host daily run output"
101.1Scgd
111.18Smrgumask 077
121.18Smrg
131.18Smrgif [ -s /etc/daily.conf ]; then
141.18Smrg	. /etc/daily.conf
151.18Smrgfi
161.18Smrg
171.17Sjtc#echo ""
181.17Sjtc#echo "Removing scratch and junk files:"
191.17Sjtc#if [ -d /tmp -a ! -h /tmp ]; then
201.17Sjtc#	cd /tmp && {
211.17Sjtc#	find . -type f -atime +3 -exec rm -f -- {} \;
221.17Sjtc#	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
231.17Sjtc#	    >/dev/null 2>&1; }
241.17Sjtc#fi
251.1Scgd
261.17Sjtc#if [ -d /var/tmp -a ! -h /var/tmp ]; then
271.17Sjtc#	cd /var/tmp && {
281.17Sjtc#	find . ! -name . -atime +7 -exec rm -f -- {} \;
291.17Sjtc#	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
301.17Sjtc#	    >/dev/null 2>&1; }
311.17Sjtc#fi
321.10Scgd
331.15Spk# Additional junk directory cleanup would go like this:
341.15Spk#if [ -d /scratch -a ! -h /scratch ]; then
351.15Spk#	cd /scratch && {
361.15Spk#	find . ! -name . -atime +1 -exec rm -f -- {} \;
371.15Spk#	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
381.15Spk#	    >/dev/null 2>&1; }
391.15Spk#fi
401.10Scgd
411.17Sjtc#if [ -d /var/rwho -a ! -h /var/rwho ] ; then
421.17Sjtc#	cd /var/rwho && {
431.17Sjtc#	find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
441.17Sjtc#fi
451.10Scgd
461.18SmrgTMPDIR=/tmp/_daily.$$
471.18Smrg
481.18Smrgif ! mkdir $TMPDIR; then
491.18Smrg	echo can not create $TMPDIR.
501.18Smrg	exit 1
511.18Smrgfi
521.18Smrg
531.18Smrgif ! cd $TMPDIR; then
541.18Smrg	echo can not cd to $TMPDIR.
551.18Smrg	exit 1
561.18Smrgfi
571.18Smrg
581.10ScgdTMP=daily.$$
591.18SmrgTMP2=daily2.$$
601.18Smrg
611.21Smikelif [ "$find_core" != NO ] ; then
621.18Smrg	find / \( ! -fstype local -o -fstype rdonly -o -fstype fdesc \
631.14Smycroft		-o -fstype kernfs -o -fstype procfs \) -a -prune -o \
641.18Smrg		-name 'lost+found' -a -prune -o \
651.18Smrg		-name '*.core' -a -print > $TMP
661.18Smrg#		\( -name '[#,]*' -o -name '.#*' -o -name a.out \
671.18Smrg#		   -o -name '*.CKP' -o -name '.emacs_[0-9]*' \) \
681.18Smrg#			-a -atime +3 -exec rm -f -- {} \; -a -print > $TMP
691.18Smrg
701.18Smrg	egrep '\.core' $TMP > $TMP2
711.18Smrg	if [ -s $TMP2 ]; then
721.18Smrg		echo ""
731.18Smrg		echo "Possible core dumps:"
741.18Smrg		cat $TMP2
751.18Smrg	fi
761.18Smrg
771.18Smrg#	egrep -v '\.core' $TMP > $TMP2
781.18Smrg#	if [ -s $TMP2 ]; then
791.18Smrg#		echo ""
801.18Smrg#		echo "Deleted files:"
811.18Smrg#		cat $TMP2
821.18Smrg#	fi
831.10Scgd
841.18Smrg	rm -f $TMP $TMP2
851.18Smrgfi
861.10Scgd
871.21Smikelif [ "$run_msgs" != NO ]; then
881.18Smrg	msgs -c
891.18Smrgfi
901.1Scgd
911.21Smikelif [ "$expire_news" != NO -a -f /etc/news.expire ]; then
921.1Scgd	/etc/news.expire
931.1Scgdfi
941.1Scgd
951.21Smikelif [ "$purge_accounting" != NO -a -f /var/account/acct ]; then
961.21Smikel	echo ""
971.21Smikel	echo "Purging accounting records:"
981.21Smikel	mv /var/account/acct.2 /var/account/acct.3
991.21Smikel	mv /var/account/acct.1 /var/account/acct.2
1001.21Smikel	mv /var/account/acct.0 /var/account/acct.1
1011.21Smikel	cp /var/account/acct /var/account/acct.0
1021.21Smikel	sa -sq
1031.1Scgdfi
1041.1Scgd
1051.21Smikelif [ "$run_calendar" != NO ]; then
1061.18Smrg	calendar -a > $TMP
1071.18Smrg	if [ -s $TMP ]; then
1081.18Smrg		echo ""
1091.18Smrg		echo "Running calendar:"
1101.18Smrg		cat $TMP
1111.18Smrg	fi
1121.18Smrg	rm -f $TMP
1131.18Smrgfi
1141.1Scgd
1151.21Smikelif [ "$check_uucp" != NO -a -d /var/spool/uucp -a -f /etc/uuclean.daily ]; then
1161.1Scgd	echo ""
1171.1Scgd	echo "Cleaning up UUCP:"
1181.1Scgd	echo /etc/uuclean.daily | su daemon
1191.1Scgdfi
1201.1Scgd
1211.21Smikelif [ "$check_disks" != NO ]; then
1221.18Smrg	df -k > $TMP 
1231.18Smrg	dump W > $TMP2
1241.18Smrg	if [ -s $TMP -o -s $TMP2 ]; then
1251.18Smrg		echo ""
1261.18Smrg		echo "Checking subsystem status:"
1271.18Smrg		echo ""
1281.18Smrg		echo "disks:"
1291.18Smrg		if [ -s $TMP ]; then
1301.18Smrg			cat $TMP
1311.18Smrg			echo ""
1321.18Smrg		fi
1331.18Smrg		if [ -s $TMP2 ]; then
1341.18Smrg			cat $TMP2
1351.18Smrg			echo ""
1361.18Smrg		fi
1371.18Smrg		echo ""
1381.18Smrg	fi
1391.18Smrgfi
1401.18Smrg
1411.18Smrgrm -f $TMP $TMP2
1421.18Smrg
1431.21Smikelif [ "$check_mailq" != NO ]; then
1441.18Smrg	mailq > $TMP
1451.18Smrg	if ! grep -q "^Mail queue is empty$" $TMP; then
1461.18Smrg		echo ""
1471.18Smrg		echo "mail:"
1481.18Smrg		cat $TMP
1491.18Smrg	fi
1501.18Smrgfi
1511.18Smrg
1521.18Smrgrm -f $TMP
1531.1Scgd
1541.21Smikelif [ "$check_uucp" != NO -a -d /var/spool/uucp ]; then
1551.18Smrg	uustat -a > $TMP
1561.18Smrg	if [ -s $TMP ]; then
1571.18Smrg		echo ""
1581.18Smrg		echo "uucp:"
1591.21Smikel		cat $TMP
1601.18Smrg	fi
1611.18Smrgfi
1621.1Scgd
1631.18Smrgrm -f $TMP
1641.1Scgd
1651.21Smikelif [ "$check_network" != NO ]; then
1661.18Smrg	echo ""
1671.18Smrg	echo "network:"
1681.18Smrg	netstat -i
1691.1Scgd	echo ""
1701.18Smrg	t=/var/rwho/*
1711.18Smrg	if [ "$t" != '/var/rwho/*' ]; then
1721.18Smrg		ruptime
1731.18Smrg	fi
1741.1Scgdfi
1751.1Scgd
1761.21Smikelif [ "$run_fsck" != NO ]; then
1771.18Smrg	echo ""
1781.18Smrg	echo "Checking filesystems:"
1791.18Smrg	fsck -n | grep -v '^\*\* Phase'
1801.18Smrgfi
1811.1Scgd
1821.1Scgdecho ""
1831.21Smikelif [ "$run_rdist" != NO -a -f /etc/Distfile ]; then
1841.1Scgd	echo "Running rdist:"
1851.20Smikel	if [ -d /var/log/rdist ]; then
1861.21Smikel		logf=`date +%Y.%b.%e`
1871.20Smikel		rdist -f /etc/Distfile 2>&1 | tee /var/log/rdist/$logf
1881.20Smikel	else
1891.20Smikel		rdist -f /etc/Distfile 
1901.20Smikel	fi
1911.1Scgdfi
1921.1Scgd
1931.21Smikelif [ "$run_security" != NO ]; then
1941.20Smikel	sh /etc/security 2>&1 | mail -s "$host daily insecurity output" root
1951.18Smrgfi
1961.18Smrg
1971.18Smrgrm -rf $TMPDIR
198