daily revision 1.7
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.6Scgd# Rotation of accounting log now handled automatically by cron and 'newsyslog'
541.6Scgd# eventually might want to replace "sa" though...
551.6Scgd#
561.6Scgd#if [ -f /var/account ]; then
571.6Scgd#	echo "" ;
581.6Scgd#	echo "Purging accounting records:" ;
591.6Scgd#	mv /var/account/acct.2 /var/account/acct.3 ;
601.6Scgd#	mv /var/account/acct.1 /var/account/acct.2 ;
611.6Scgd#	mv /var/account/acct.0 /var/account/acct.1 ;
621.6Scgd#	cp /var/account/acct /var/account/acct.0 ;
631.6Scgd#	sa -s > /dev/null ;
641.6Scgd#fi
651.1Scgd
661.1Scgdecho ""
671.1Scgdecho "Backup passwd and group files:"
681.1Scgdif cmp -s $bak/master.passwd.bak /etc/master.passwd; then :; else
691.1Scgd	echo "$host passwd diffs:"
701.1Scgd	diff $bak/master.passwd.bak /etc/master.passwd
711.1Scgd	mv $bak/master.passwd.bak $bak/master.passwd.bak2
721.1Scgd	cp -p /etc/master.passwd $bak/master.passwd.bak
731.1Scgdfi
741.1Scgdif cmp -s $bak/group.bak /etc/group; then :; else
751.1Scgd	mv $bak/group.bak $bak/group.bak2
761.1Scgd	cp -p /etc/group $bak/group.bak
771.1Scgdfi
781.1Scgdif cmp -s $bak/aliases.bak /etc/aliases; then :; else
791.1Scgd	mv $bak/aliases.bak $bak/aliases.bak2
801.1Scgd	cp -p /etc/aliases $bak/aliases.bak
811.1Scgdfi
821.1Scgdif [ -f /etc/Distfile ]; then
831.1Scgd	if cmp -s $bak/Distfile.bak /etc/Distfile; then :; else
841.1Scgd		mv $bak/Distfile.bak $bak/Distfile.bak2
851.1Scgd		cp /etc/Distfile $bak/Distfile.bak
861.1Scgd	fi
871.1Scgdfi
881.1Scgd
891.1Scgdecho ""
901.1Scgdecho "Running calendar:"
911.1Scgdcalendar -a
921.1Scgd
931.4Sglassecho ""
941.4Sglassecho "Making 'whatis' database:" 
951.3Sglassif [ -d /usr/share/man -a -f /usr/share/man/makewhatis.sed ]; then
961.4Sglass	for file in `find /usr/share/man -type f -name '*.0' -print`; do \
971.4Sglass		sed -n -f /usr/share/man/makewhatis.sed $file; \
981.4Sglass	done | sort -u > /tmp/whatis.db.$$
991.4Sglass	cp /tmp/whatis.db.$$ /usr/share/man/whatis.db
1001.4Sglass	chmod 644 /usr/share/man/whatis.db
1011.4Sglass	rm -f /tmp/whatis.db.$$	
1021.3Sglassfi
1031.3Sglass
1041.6Scgd# Rotation of mail log now handled automatically by cron and 'newsyslog'
1051.1Scgd
1061.1Scgdif [ -d /var/spool/uucp -a -f /etc/uuclean.daily ]; then
1071.1Scgd	echo ""
1081.1Scgd	echo "Cleaning up UUCP:"
1091.1Scgd	echo /etc/uuclean.daily | su daemon
1101.1Scgdfi
1111.1Scgd
1121.1Scgdecho ""
1131.1Scgdecho ""
1141.1Scgdecho "Checking subsystem status:"
1151.1Scgdecho ""
1161.1Scgdecho "disks:"
1171.1Scgddf -k
1181.1Scgdecho ""
1191.1Scgddump W
1201.1Scgdecho ""
1211.1Scgd
1221.1Scgd
1231.1Scgdecho ""
1241.1Scgdecho "mail:"
1251.1Scgdmailq
1261.1Scgd
1271.1Scgdif [ -d /var/spool/uucp ]; then
1281.1Scgd	echo ""
1291.1Scgd	echo "uucp:"
1301.2Scgd	uustat -a
1311.1Scgdfi
1321.1Scgd
1331.1Scgdecho ""
1341.1Scgdecho "network:"
1351.1Scgdnetstat -i
1361.1Scgdecho ""
1371.1Scgdruptime
1381.1Scgd
1391.1Scgdecho ""
1401.1Scgdecho "Checking filesystems:"
1411.1Scgdfsck -n | grep -v '^\*\* Phase'
1421.1Scgd
1431.1Scgdecho ""
1441.1Scgdif [ -f /etc/Distfile ]; then
1451.1Scgd	echo "Running rdist:"
1461.1Scgd	rdist -f /etc/Distfile
1471.1Scgdfi
1481.1Scgd
1491.7Scgdsh /etc/security 2>&1 | mail -s "daily insecurity output" root
150