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