Home | History | Annotate | Line # | Download | only in etc
daily revision 1.1.1.2
      1      1.1    cgd #!/bin/sh -
      2      1.1    cgd #
      3  1.1.1.2  mikel #	@(#)daily	8.2 (Berkeley) 1/25/94
      4      1.1    cgd #
      5  1.1.1.2  mikel PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
      6  1.1.1.2  mikel host=`hostname`
      7      1.1    cgd echo "Subject: $host daily run output"
      8      1.1    cgd bak=/var/backups
      9      1.1    cgd 
     10      1.1    cgd echo ""
     11      1.1    cgd echo "Removing scratch and junk files:"
     12      1.1    cgd if [ -d /tmp ]; then
     13      1.1    cgd 	cd /tmp && {
     14      1.1    cgd 	find . -type f -atime +3 -exec rm -f -- {} \;
     15      1.1    cgd 	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
     16      1.1    cgd 	    >/dev/null 2>&1; }
     17      1.1    cgd fi
     18      1.1    cgd 
     19  1.1.1.2  mikel if [ -d /var/tmp -a "X$CLEANVARTMP" = X1 ]; then
     20      1.1    cgd 	cd /var/tmp && {
     21      1.1    cgd 	find . ! -name . -atime +7 -exec rm -f -- {} \;
     22      1.1    cgd 	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
     23      1.1    cgd 	    >/dev/null 2>&1; }
     24      1.1    cgd fi
     25      1.1    cgd 
     26      1.1    cgd if [ -d /scratch ]; then
     27      1.1    cgd 	cd /scratch && {
     28      1.1    cgd 	find . ! -name . -atime +1 -exec rm -f -- {} \;
     29      1.1    cgd 	find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
     30      1.1    cgd 	    >/dev/null 2>&1; }
     31      1.1    cgd fi
     32      1.1    cgd 
     33      1.1    cgd if [ -d /var/preserve ]; then
     34      1.1    cgd 	cd /var/preserve && {
     35      1.1    cgd 	find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
     36      1.1    cgd fi
     37      1.1    cgd 
     38      1.1    cgd if [ -d /var/rwho ] ; then
     39      1.1    cgd 	cd /var/rwho && {
     40      1.1    cgd 	find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
     41      1.1    cgd fi
     42      1.1    cgd 
     43      1.1    cgd cd /tmp
     44  1.1.1.2  mikel TMP=daily.$$
     45  1.1.1.2  mikel find / \( ! -fstype local -o -fstype rdonly \) -a -prune -o \
     46  1.1.1.2  mikel 	-name 'lost+found' -a -prune -o \
     47  1.1.1.2  mikel 	-name '*.core' -a -print -o \
     48  1.1.1.2  mikel 	\( -name '[#,]*' -o -name '.#*' -o -name a.out \
     49      1.1    cgd 	   -o -name '*.CKP' -o -name '.emacs_[0-9]*' \) \
     50  1.1.1.2  mikel 		-a -atime +3 -a -exec rm -f -- {} \; -a -print > $TMP
     51  1.1.1.2  mikel echo ""
     52  1.1.1.2  mikel echo "Possible core dumps:"
     53  1.1.1.2  mikel egrep '\.core' $TMP
     54  1.1.1.2  mikel 
     55  1.1.1.2  mikel echo ""
     56  1.1.1.2  mikel echo "Deleted files:"
     57  1.1.1.2  mikel egrep -v '\.core' $TMP
     58  1.1.1.2  mikel 
     59  1.1.1.2  mikel rm -f $TMP
     60  1.1.1.2  mikel 	
     61      1.1    cgd msgs -c
     62      1.1    cgd if [ -f /etc/news.expire ]; then
     63      1.1    cgd 	/etc/news.expire
     64      1.1    cgd fi
     65      1.1    cgd 
     66      1.1    cgd echo ""
     67      1.1    cgd echo "Purging accounting records:"
     68      1.1    cgd mv /var/account/acct.2 /var/account/acct.3
     69      1.1    cgd mv /var/account/acct.1 /var/account/acct.2
     70      1.1    cgd mv /var/account/acct.0 /var/account/acct.1
     71      1.1    cgd cp /var/account/acct /var/account/acct.0
     72      1.1    cgd sa -s > /dev/null
     73      1.1    cgd 
     74  1.1.1.2  mikel # If ROOTBACKUP is set to 1 in the environment, and
     75  1.1.1.2  mikel # if filesystem named /altroot is type ufs, on /dev/* and mounted "xx",
     76  1.1.1.2  mikel # use it as a backup root filesystem to be updated daily.
     77  1.1.1.2  mikel [ "X$ROOTBACKUP" = X1 ] && {
     78  1.1.1.2  mikel 	rootdev=`awk '$2 == "/" && $1 ~ /^\/dev\// && $3 == "ufs" && \
     79  1.1.1.2  mikel 	    $4 == "rw" \
     80  1.1.1.2  mikel 		 { print substr($1, 6) }' < /etc/fstab`
     81  1.1.1.2  mikel 	rootbak=`awk '$2 == "/altroot" && $1 ~ /^\/dev\// && $3 == "ufs" && \
     82  1.1.1.2  mikel 	    $4 == "xx" \
     83  1.1.1.2  mikel 		{ print substr($1, 6) }' < /etc/fstab`
     84  1.1.1.2  mikel 	[ X$rootdev != X -a X$rootbak != X ] && {
     85  1.1.1.2  mikel 		sync
     86  1.1.1.2  mikel 		echo ""
     87  1.1.1.2  mikel 		echo "Backing up root filesystem:"
     88  1.1.1.2  mikel 		echo "copying /dev/r$rootdev to /dev/r$rootbak"
     89  1.1.1.2  mikel 		dd if=/dev/r$rootdev of=/dev/r$rootbak bs=16b seek=1 skip=1 \
     90  1.1.1.2  mikel 			conv=noerror,sync
     91  1.1.1.2  mikel 		fsck -y /dev/r$rootbak
     92  1.1.1.2  mikel 	}
     93  1.1.1.2  mikel }
     94      1.1    cgd 
     95      1.1    cgd echo ""
     96      1.1    cgd echo "Running calendar:"
     97      1.1    cgd calendar -a
     98      1.1    cgd 
     99      1.1    cgd echo ""
    100      1.1    cgd echo "Rotating mail log:"
    101      1.1    cgd cd /var/log
    102      1.1    cgd rm -f maillog.7
    103      1.1    cgd if [ -f maillog.6 ]; then mv -f maillog.6  maillog.7; fi
    104      1.1    cgd if [ -f maillog.5 ]; then mv -f maillog.5  maillog.6; fi
    105      1.1    cgd if [ -f maillog.4 ]; then mv -f maillog.4  maillog.5; fi
    106      1.1    cgd if [ -f maillog.3 ]; then mv -f maillog.3  maillog.4; fi
    107      1.1    cgd if [ -f maillog.2 ]; then mv -f maillog.2  maillog.3; fi
    108      1.1    cgd if [ -f maillog.1 ]; then mv -f maillog.1  maillog.2; fi
    109      1.1    cgd if [ -f maillog.0 ]; then mv -f maillog.0  maillog.1; fi
    110      1.1    cgd mv -f maillog maillog.0
    111      1.1    cgd cp /dev/null maillog
    112      1.1    cgd chmod 644    maillog
    113      1.1    cgd kill -1 `cat /var/run/syslog.pid`
    114      1.1    cgd cd /
    115      1.1    cgd 
    116      1.1    cgd if [ -d /var/spool/uucp -a -f /etc/uuclean.daily ]; then
    117      1.1    cgd 	echo ""
    118      1.1    cgd 	echo "Cleaning up UUCP:"
    119      1.1    cgd 	echo /etc/uuclean.daily | su daemon
    120      1.1    cgd fi
    121      1.1    cgd 
    122      1.1    cgd echo ""
    123      1.1    cgd echo ""
    124      1.1    cgd echo "Checking subsystem status:"
    125      1.1    cgd echo ""
    126      1.1    cgd echo "disks:"
    127  1.1.1.2  mikel env BLOCKSIZE=1k df
    128      1.1    cgd echo ""
    129      1.1    cgd dump W
    130      1.1    cgd echo ""
    131      1.1    cgd 
    132      1.1    cgd 
    133      1.1    cgd echo ""
    134      1.1    cgd echo "mail:"
    135      1.1    cgd mailq
    136      1.1    cgd 
    137      1.1    cgd if [ -d /var/spool/uucp ]; then
    138      1.1    cgd 	echo ""
    139      1.1    cgd 	echo "uucp:"
    140      1.1    cgd 	uusnap
    141      1.1    cgd fi
    142      1.1    cgd 
    143      1.1    cgd echo ""
    144      1.1    cgd echo "network:"
    145      1.1    cgd netstat -i
    146      1.1    cgd echo ""
    147      1.1    cgd ruptime
    148      1.1    cgd 
    149      1.1    cgd echo ""
    150      1.1    cgd echo "Checking filesystems:"
    151      1.1    cgd fsck -n | grep -v '^\*\* Phase'
    152      1.1    cgd 
    153      1.1    cgd echo ""
    154      1.1    cgd if [ -f /etc/Distfile ]; then
    155      1.1    cgd 	echo "Running rdist:"
    156  1.1.1.2  mikel 	if [ -d /var/log/rdist ]; then
    157  1.1.1.2  mikel 		logf=`date | awk '{printf "%s.%s.%s", $6, $2, $3}'`
    158  1.1.1.2  mikel 		rdist -f /etc/Distfile 2>&1 | tee /var/log/rdist/$logf
    159  1.1.1.2  mikel 	else
    160  1.1.1.2  mikel 		rdist -f /etc/Distfile 
    161  1.1.1.2  mikel 	fi
    162      1.1    cgd fi
    163      1.1    cgd 
    164  1.1.1.2  mikel sh /etc/security 2>&1 | mail -s "$host daily insecurity output" root
    165