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