daily revision 1.5
11.1Scgd#!/bin/sh -
21.1Scgd#
31.1Scgd#	@(#)daily	5.12 (Berkeley) 5/24/91
41.1Scgd#
51.1ScgdPATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local
61.1Scgdhost=`hostname -s`
71.1Scgdecho "Subject: $host daily run output"
81.1Scgdbak=/var/backups
91.1Scgd
101.1Scgdecho ""
111.1Scgdecho "Removing scratch and junk files:"
121.1Scgdif [ -d /tmp ]; then
131.1Scgd	cd /tmp && {
141.1Scgd	find . -type f -atime +3 -exec rm -f -- {} \;
151.1Scgd	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
161.1Scgd	    >/dev/null 2>&1; }
171.1Scgdfi
181.1Scgd
191.1Scgdif [ -d /var/tmp ]; then
201.1Scgd	cd /var/tmp && {
211.1Scgd	find . ! -name . -atime +7 -exec rm -f -- {} \;
221.1Scgd	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
231.1Scgd	    >/dev/null 2>&1; }
241.1Scgdfi
251.1Scgd
261.1Scgdif [ -d /scratch ]; then
271.1Scgd	cd /scratch && {
281.1Scgd	find . ! -name . -atime +1 -exec rm -f -- {} \;
291.1Scgd	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
301.1Scgd	    >/dev/null 2>&1; }
311.1Scgdfi
321.1Scgd
331.1Scgdif [ -d /var/preserve ]; then
341.1Scgd	cd /var/preserve && {
351.1Scgd	find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
361.1Scgdfi
371.1Scgd
381.1Scgdif [ -d /var/rwho ] ; then
391.1Scgd	cd /var/rwho && {
401.1Scgd	find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
411.1Scgdfi
421.1Scgd
431.1Scgdcd /tmp
441.5Scgdfind / \( ! -fstype local -o -fstype fdesc -o -fstype kernfs \) -a -prune -o \
451.1Scgd	\( -name '[#,]*' -o -name '.#*' -o -name a.out -o -name core \
461.1Scgd	   -o -name '*.CKP' -o -name '.emacs_[0-9]*' \) \
471.1Scgd		-a -atime +3 -exec rm -f -- {} \;
481.2Scgd#msgs -c
491.1Scgdif [ -f /etc/news.expire ]; then
501.1Scgd	/etc/news.expire
511.1Scgdfi
521.1Scgd
531.2Scgdif [ -f /var/account ]; then
541.2Scgd	echo "" ;
551.2Scgd	echo "Purging accounting records:" ;
561.2Scgd	mv /var/account/acct.2 /var/account/acct.3 ;
571.2Scgd	mv /var/account/acct.1 /var/account/acct.2 ;
581.2Scgd	mv /var/account/acct.0 /var/account/acct.1 ;
591.2Scgd	cp /var/account/acct /var/account/acct.0 ;
601.2Scgd	sa -s > /dev/null ;
611.2Scgdfi
621.1Scgd
631.1Scgdecho ""
641.1Scgdecho "Backup passwd and group files:"
651.1Scgdif cmp -s $bak/master.passwd.bak /etc/master.passwd; then :; else
661.1Scgd	echo "$host passwd diffs:"
671.1Scgd	diff $bak/master.passwd.bak /etc/master.passwd
681.1Scgd	mv $bak/master.passwd.bak $bak/master.passwd.bak2
691.1Scgd	cp -p /etc/master.passwd $bak/master.passwd.bak
701.1Scgdfi
711.1Scgdif cmp -s $bak/group.bak /etc/group; then :; else
721.1Scgd	mv $bak/group.bak $bak/group.bak2
731.1Scgd	cp -p /etc/group $bak/group.bak
741.1Scgdfi
751.1Scgdif cmp -s $bak/aliases.bak /etc/aliases; then :; else
761.1Scgd	mv $bak/aliases.bak $bak/aliases.bak2
771.1Scgd	cp -p /etc/aliases $bak/aliases.bak
781.1Scgdfi
791.1Scgdif [ -f /etc/Distfile ]; then
801.1Scgd	if cmp -s $bak/Distfile.bak /etc/Distfile; then :; else
811.1Scgd		mv $bak/Distfile.bak $bak/Distfile.bak2
821.1Scgd		cp /etc/Distfile $bak/Distfile.bak
831.1Scgd	fi
841.1Scgdfi
851.1Scgd
861.1Scgdecho ""
871.1Scgdecho "Running calendar:"
881.1Scgdcalendar -a
891.1Scgd
901.4Sglassecho ""
911.4Sglassecho "Making 'whatis' database:" 
921.3Sglassif [ -d /usr/share/man -a -f /usr/share/man/makewhatis.sed ]; then
931.4Sglass	for file in `find /usr/share/man -type f -name '*.0' -print`; do \
941.4Sglass		sed -n -f /usr/share/man/makewhatis.sed $file; \
951.4Sglass	done | sort -u > /tmp/whatis.db.$$
961.4Sglass	cp /tmp/whatis.db.$$ /usr/share/man/whatis.db
971.4Sglass	chmod 644 /usr/share/man/whatis.db
981.4Sglass	rm -f /tmp/whatis.db.$$	
991.3Sglassfi
1001.3Sglass
1011.3Sglassecho ""
1021.1Scgdecho "Rotating mail log:"
1031.1Scgdcd /var/log
1041.2Scgdrm -f maillog.7.Z
1051.2Scgdif [ -f maillog.6.Z ]; then mv -f maillog.6.Z  maillog.7.Z; fi
1061.2Scgdif [ -f maillog.5.Z ]; then mv -f maillog.5.Z  maillog.6.Z; fi
1071.2Scgdif [ -f maillog.4.Z ]; then mv -f maillog.4.Z  maillog.5.Z; fi
1081.2Scgdif [ -f maillog.3.Z ]; then mv -f maillog.3.Z  maillog.4.Z; fi
1091.2Scgdif [ -f maillog.2.Z ]; then mv -f maillog.2.Z  maillog.3.Z; fi
1101.2Scgdif [ -f maillog.1.Z ]; then mv -f maillog.1.Z  maillog.2.Z; fi
1111.2Scgdif [ -f maillog.0.Z ]; then mv -f maillog.0.Z  maillog.1.Z; fi
1121.1Scgdmv -f maillog maillog.0
1131.2Scgdcompress -f maillog.0
1141.1Scgdcp /dev/null maillog
1151.2Scgdchmod 600    maillog
1161.1Scgdkill -1 `cat /var/run/syslog.pid`
1171.2Scgd
1181.2Scgd
1191.1Scgdcd /
1201.1Scgd
1211.1Scgdif [ -d /var/spool/uucp -a -f /etc/uuclean.daily ]; then
1221.1Scgd	echo ""
1231.1Scgd	echo "Cleaning up UUCP:"
1241.1Scgd	echo /etc/uuclean.daily | su daemon
1251.1Scgdfi
1261.1Scgd
1271.1Scgdecho ""
1281.1Scgdecho ""
1291.1Scgdecho "Checking subsystem status:"
1301.1Scgdecho ""
1311.1Scgdecho "disks:"
1321.1Scgddf -k
1331.1Scgdecho ""
1341.1Scgddump W
1351.1Scgdecho ""
1361.1Scgd
1371.1Scgd
1381.1Scgdecho ""
1391.1Scgdecho "mail:"
1401.1Scgdmailq
1411.1Scgd
1421.1Scgdif [ -d /var/spool/uucp ]; then
1431.1Scgd	echo ""
1441.1Scgd	echo "uucp:"
1451.2Scgd	uustat -a
1461.1Scgdfi
1471.1Scgd
1481.1Scgdecho ""
1491.1Scgdecho "network:"
1501.1Scgdnetstat -i
1511.1Scgdecho ""
1521.1Scgdruptime
1531.1Scgd
1541.1Scgdecho ""
1551.1Scgdecho "Checking filesystems:"
1561.1Scgdfsck -n | grep -v '^\*\* Phase'
1571.1Scgd
1581.1Scgdecho ""
1591.1Scgdif [ -f /etc/Distfile ]; then
1601.1Scgd	echo "Running rdist:"
1611.1Scgd	rdist -f /etc/Distfile
1621.1Scgdfi
1631.1Scgd
1641.1Scgdsh /etc/security | mail -s "daily insecurity output" root
165