Annotation of src/etc/daily, Revision 1.17
1.1 deraadt 1: #!/bin/sh -
2: #
1.17 ! millert 3: # $OpenBSD: daily,v 1.16 1997/01/03 22:51:26 millert Exp $
! 4: # From: @(#)daily 8.2 (Berkeley) 1/25/94
1.1 deraadt 5: #
1.17 ! millert 6: PATH=/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin
1.1 deraadt 7: host=`hostname -s`
8: echo "Subject: $host daily run output"
1.17 ! millert 9: bak=/var/backups
1.1 deraadt 10:
1.2 david 11: if [ -f /etc/daily.local ];then
12: echo ""
13: echo "Running daily.local:"
14: . /etc/daily.local
15: fi
16:
1.16 millert 17: TMP=`mktemp /tmp/_daily.XXXXXX` || exit 1
18:
1.14 millert 19: trap 'rm -f $TMP' 0 1 15
20:
1.1 deraadt 21: echo ""
1.17 ! millert 22: echo "Removing scratch and junk files:"
! 23: if [ -d /tmp -a ! -h /tmp ]; then
! 24: cd /tmp && {
! 25: find . -type f -atime +3 -execdir rm -f -- {} \;
! 26: find . ! -name . -type d -mtime +1 -execdir rmdir -- {} \; \
! 27: >/dev/null 2>&1; }
! 28: fi
1.1 deraadt 29:
1.17 ! millert 30: if [ -d /var/tmp -a ! -h /var/tmp ]; then
! 31: cd /var/tmp && {
! 32: find . ! -name . -atime +7 -execdir rm -f -- {} \;
! 33: find . ! -name . -type d -mtime +1 -execdir rmdir -- {} \; \
! 34: >/dev/null 2>&1; }
! 35: fi
1.1 deraadt 36:
1.3 deraadt 37: # Additional junk directory cleanup would go like this:
38: #if [ -d /scratch -a ! -h /scratch ]; then
39: # cd /scratch && {
1.17 ! millert 40: # find . ! -name . -atime +1 -execdir rm -f -- {} \;
! 41: # find . ! -name . -type d -mtime +1 -execdir rmdir -- {} \; \
1.3 deraadt 42: # >/dev/null 2>&1; }
43: #fi
1.1 deraadt 44:
1.17 ! millert 45: if [ -d /var/preserve -a ! -h /var/preserve ]; then
! 46: cd /var/preserve && {
! 47: find . ! -name . -mtime +7 -execdir rm -f -- {} \; ; }
! 48: fi
! 49:
! 50: if [ -d /var/rwho -a ! -h /var/rwho ] ; then
! 51: cd /var/rwho && {
! 52: find . ! -name . -mtime +7 -execdir rm -f -- {} \; ; }
! 53: fi
1.1 deraadt 54:
1.7 deraadt 55: find / \( ! -fstype local -o -fstype rdonly -o -fstype fdesc \
56: -o -fstype kernfs -o -fstype procfs \) -a -prune -o \
57: -name 'lost+found' -a -prune -o \
1.17 ! millert 58: -name '*.core' -a -print -o \
! 59: \( -name '[#,]*' -o -name '.#*' -o -name a.out \
! 60: -o -name '*.CKP' -o -name '.emacs_[0-9]*' \) \
! 61: -a -atime +3 -a -execdir rm -f -- {} \; -a -print > $TMP
1.1 deraadt 62:
1.14 millert 63: if egrep -q '\.core$' $TMP; then
1.17 ! millert 64: echo ""
! 65: echo "Possible core dumps:"
! 66: egrep '\.core$' $TMP
! 67: fi
! 68:
! 69: if egrep -qv '\.core$' $TMP; then
! 70: echo ""
! 71: echo "Deleted files:"
! 72: egrep -v '\.core$' $TMP
1.14 millert 73: fi
1.1 deraadt 74:
75: msgs -c
76:
1.17 ! millert 77: if [ -s /etc/news.expire ]; then
1.1 deraadt 78: /etc/news.expire
79: fi
80:
81: if [ -f /var/account/acct ]; then
1.17 ! millert 82: echo ""
! 83: echo "Purging accounting records:"
! 84: mv /var/account/acct.2 /var/account/acct.3
! 85: mv /var/account/acct.1 /var/account/acct.2
! 86: mv /var/account/acct.0 /var/account/acct.1
! 87: cp /var/account/acct /var/account/acct.0
! 88: sa -sq
! 89: fi
! 90:
! 91: # If ROOTBACKUP is set to 1 in the environment, and
! 92: # if filesystem named /altroot is type ffs, on /dev/* and mounted "xx",
! 93: # use it as a backup root filesystem to be updated daily.
! 94: [ "X$ROOTBACKUP" = X1 ] && {
! 95: rootdev=`awk '$2 == "/" && $1 ~ /^\/dev\// && $3 == "ffs" && \
! 96: $4 == "rw" \
! 97: { print substr($1, 6) }' < /etc/fstab`
! 98: rootbak=`awk '$2 == "/altroot" && $1 ~ /^\/dev\// && $3 == "ffs" && \
! 99: $4 == "xx" \
! 100: { print substr($1, 6) }' < /etc/fstab`
! 101: [ X$rootdev != X -a X$rootbak != X ] && {
! 102: sync
! 103: echo ""
! 104: echo "Backing up root filesystem:"
! 105: echo "copying /dev/r$rootdev to /dev/r$rootbak"
! 106: dd if=/dev/r$rootdev of=/dev/r$rootbak bs=16b seek=1 skip=1 \
! 107: conv=noerror,sync
! 108: fsck -y /dev/r$rootbak
! 109: }
! 110: }
1.1 deraadt 111:
112: echo ""
1.17 ! millert 113: if [ -d /var/yp/binding -a ! -d /var/yp/`domainname` ]; then
1.14 millert 114: echo "Not running calendar, (yp client)."
1.10 deraadt 115: else
1.14 millert 116: echo "Running calendar."
1.11 deraadt 117: calendar -a
1.10 deraadt 118: fi
1.1 deraadt 119:
120: # Rotation of mail log now handled automatically by cron and 'newsyslog'
121:
122: if [ -d /var/spool/uucp -a -f /etc/uuclean.daily ]; then
123: echo ""
124: echo "Cleaning up UUCP:"
125: echo /etc/uuclean.daily | su daemon
126: fi
127:
128: echo ""
129: echo "Checking subsystem status:"
130: echo ""
131: echo "disks:"
132: df -k
133: echo ""
134: dump W
135: echo ""
136:
1.15 millert 137: mailq > $TMP
138: if ! grep -q "^Mail queue is empty$" $TMP; then
139: echo ""
140: echo "mail:"
141: cat $TMP
142: fi
1.1 deraadt 143:
144: if [ -d /var/spool/uucp ]; then
1.15 millert 145: uustat -a > $TMP
146: if [ -s $TMP ]; then
147: echo ""
148: echo "uucp:"
149: cat $TMP
150: fi
1.1 deraadt 151: fi
152:
153: echo ""
154: echo "network:"
155: netstat -i
156: echo ""
1.14 millert 157:
1.15 millert 158: t=/var/rwho/*
159: if [ "$t" != '/var/rwho/*' ]; then
1.17 ! millert 160: echo ""
1.14 millert 161: ruptime
162: fi
1.1 deraadt 163:
1.17 ! millert 164: # If CHECKFILESYSTEMS is set to 1 in the environment, run fsck
! 165: # with the no-write flag.
! 166: [ "X$CHECKFILESYSTEMS" = X1 ] && {
! 167: echo ""
! 168: echo "Checking filesystems:"
! 169: fsck -n | grep -v '^\*\* Phase'
! 170: }
1.1 deraadt 171:
172: if [ -f /etc/Distfile ]; then
1.17 ! millert 173: echo ""
1.1 deraadt 174: echo "Running rdist:"
1.17 ! millert 175: if [ -d /var/log/rdist ]; then
! 176: logf=`date | awk '{printf "%s.%s.%s", $6, $2, $3}'`
! 177: rdist -f /etc/Distfile 2>&1 | tee /var/log/rdist/$logf
! 178: else
! 179: rdist -f /etc/Distfile
! 180: fi
1.1 deraadt 181: fi
182:
1.12 deraadt 183: sh /etc/security 2>&1 | mail -s "$host daily insecurity output" root