Annotation of src/etc/daily, Revision 1.40
1.1 cgd 1: #!/bin/sh -
2: #
1.40 ! perry 3: # $NetBSD: daily,v 1.39 2001/10/09 05:28:42 veego Exp $
1.21 mikel 4: # @(#)daily 8.2 (Berkeley) 1/25/94
1.1 cgd 5: #
1.18 mrg 6:
1.27 mycroft 7: export PATH=/bin:/usr/bin:/sbin:/usr/sbin
1.28 lukem 8: umask 077
9:
10: if [ -s /etc/daily.conf ]; then
11: . /etc/daily.conf
12: fi
13:
1.20 mikel 14: host=`hostname`
1.28 lukem 15: date=`date`
1.1 cgd 16:
1.28 lukem 17: echo "To: ${MAILTO:-root}"
18: echo "Subject: $host daily output for $date"
19: echo ""
1.18 mrg 20:
1.25 lukem 21: if [ -f /etc/rc.subr ]; then
22: . /etc/rc.subr
23: else
24: echo "Can't read /etc/rc.subr; aborting."
25: exit 1;
26: fi
27:
1.23 phil 28: if [ -z "$MAILTO" -o "$USER" != "root" ]; then
1.27 mycroft 29: MAILTO=root
1.23 phil 30: fi
31:
1.22 lukem 32: echo ""
33: echo "Uptime: " `uptime`
1.18 mrg 34:
1.29 abs 35: # Uncommenting any of the finds below would open up a race condition attack
36: # based on symlinks, potentially allowing removal of any file on the system.
37: #
1.17 jtc 38: #echo ""
39: #echo "Removing scratch and junk files:"
40: #if [ -d /tmp -a ! -h /tmp ]; then
41: # cd /tmp && {
42: # find . -type f -atime +3 -exec rm -f -- {} \;
43: # find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
44: # >/dev/null 2>&1; }
45: #fi
1.1 cgd 46:
1.17 jtc 47: #if [ -d /var/tmp -a ! -h /var/tmp ]; then
48: # cd /var/tmp && {
49: # find . ! -name . -atime +7 -exec rm -f -- {} \;
1.35 aymeric 50: # find . ! \( -name . -o -name vi.recover \) -type d \
51: # -mtime +1 -exec rmdir -- {} \; \
1.17 jtc 52: # >/dev/null 2>&1; }
53: #fi
1.10 cgd 54:
1.15 pk 55: # Additional junk directory cleanup would go like this:
56: #if [ -d /scratch -a ! -h /scratch ]; then
57: # cd /scratch && {
58: # find . ! -name . -atime +1 -exec rm -f -- {} \;
59: # find . ! -name . -type d -mtime +1 -exec rmdir -- {} \; \
60: # >/dev/null 2>&1; }
61: #fi
1.10 cgd 62:
1.17 jtc 63: #if [ -d /var/rwho -a ! -h /var/rwho ] ; then
64: # cd /var/rwho && {
65: # find . ! -name . -mtime +7 -exec rm -f -- {} \; ; }
66: #fi
1.10 cgd 67:
1.36 lukem 68: DAILYDIR=`mktemp -d /tmp/_daily.XXXXXX` || exit 1
1.18 mrg 69:
1.36 lukem 70: trap "/bin/rm -rf $DAILYDIR ; exit 0" EXIT INT QUIT
1.18 mrg 71:
1.36 lukem 72: if ! cd "$DAILYDIR"; then
73: echo "Can not cd to $DAILYDIR".
1.18 mrg 74: exit 1
75: fi
76:
1.10 cgd 77: TMP=daily.$$
1.18 mrg 78: TMP2=daily2.$$
79:
1.25 lukem 80: if checkyesno find_core; then
1.18 mrg 81: find / \( ! -fstype local -o -fstype rdonly -o -fstype fdesc \
1.14 mycroft 82: -o -fstype kernfs -o -fstype procfs \) -a -prune -o \
1.18 mrg 83: -name 'lost+found' -a -prune -o \
1.26 nathanw 84: \( -name '*.core' -o -name 'core' \) -a -print > $TMP
1.18 mrg 85: # \( -name '[#,]*' -o -name '.#*' -o -name a.out \
86: # -o -name '*.CKP' -o -name '.emacs_[0-9]*' \) \
87: # -a -atime +3 -exec rm -f -- {} \; -a -print > $TMP
88:
1.26 nathanw 89: egrep '\.core$|^core$' $TMP > $TMP2
1.18 mrg 90: if [ -s $TMP2 ]; then
91: echo ""
92: echo "Possible core dumps:"
93: cat $TMP2
94: fi
95:
96: # egrep -v '\.core' $TMP > $TMP2
97: # if [ -s $TMP2 ]; then
98: # echo ""
99: # echo "Deleted files:"
100: # cat $TMP2
101: # fi
1.10 cgd 102:
1.18 mrg 103: rm -f $TMP $TMP2
104: fi
1.10 cgd 105:
1.25 lukem 106: if checkyesno run_msgs; then
1.18 mrg 107: msgs -c
108: fi
1.1 cgd 109:
1.25 lukem 110: if checkyesno expire_news && [ -f /etc/news.expire ]; then
1.1 cgd 111: /etc/news.expire
112: fi
113:
1.25 lukem 114: if checkyesno purge_accounting && [ -f /var/account/acct ]; then
1.21 mikel 115: echo ""
116: echo "Purging accounting records:"
117: mv /var/account/acct.2 /var/account/acct.3
118: mv /var/account/acct.1 /var/account/acct.2
119: mv /var/account/acct.0 /var/account/acct.1
120: cp /var/account/acct /var/account/acct.0
121: sa -sq
1.1 cgd 122: fi
123:
1.25 lukem 124: if checkyesno run_calendar; then
1.18 mrg 125: calendar -a > $TMP
126: if [ -s $TMP ]; then
127: echo ""
128: echo "Running calendar:"
129: cat $TMP
130: fi
131: rm -f $TMP
132: fi
1.1 cgd 133:
1.25 lukem 134: if checkyesno check_uucp && \
135: [ -d /var/spool/uucp -a -f /usr/libexec/uucp/clean.daily ]; then
1.1 cgd 136: echo ""
137: echo "Cleaning up UUCP:"
1.24 lukem 138: su daemon -c /usr/libexec/uucp/clean.daily
1.1 cgd 139: fi
140:
1.25 lukem 141: if checkyesno check_disks; then
1.18 mrg 142: df -k > $TMP
1.40 ! perry 143: dump -W > $TMP2
1.18 mrg 144: if [ -s $TMP -o -s $TMP2 ]; then
145: echo ""
146: echo "Checking subsystem status:"
147: echo ""
148: echo "disks:"
149: if [ -s $TMP ]; then
150: cat $TMP
151: echo ""
152: fi
153: if [ -s $TMP2 ]; then
154: cat $TMP2
155: echo ""
156: fi
157: echo ""
158: fi
159: fi
160:
161: rm -f $TMP $TMP2
162:
1.25 lukem 163: if checkyesno check_mailq; then
1.18 mrg 164: mailq > $TMP
165: if ! grep -q "^Mail queue is empty$" $TMP; then
166: echo ""
167: echo "mail:"
168: cat $TMP
169: fi
170: fi
171:
172: rm -f $TMP
1.1 cgd 173:
1.25 lukem 174: if checkyesno check_uucp && [ -d /var/spool/uucp ]; then
1.39 veego 175: su -m uucp -c "uustat -a" > $TMP
1.18 mrg 176: if [ -s $TMP ]; then
177: echo ""
178: echo "uucp:"
1.21 mikel 179: cat $TMP
1.18 mrg 180: fi
181: fi
1.1 cgd 182:
1.18 mrg 183: rm -f $TMP
1.1 cgd 184:
1.25 lukem 185: if checkyesno check_network; then
1.18 mrg 186: echo ""
187: echo "network:"
1.33 itojun 188: netstat -inv
1.1 cgd 189: echo ""
1.18 mrg 190: t=/var/rwho/*
191: if [ "$t" != '/var/rwho/*' ]; then
192: ruptime
193: fi
1.1 cgd 194: fi
195:
1.25 lukem 196: if checkyesno run_fsck; then
1.18 mrg 197: echo ""
198: echo "Checking filesystems:"
1.37 lukem 199: fsck -n -f | grep -v '^\*\* Phase'
1.18 mrg 200: fi
1.1 cgd 201:
202: echo ""
1.25 lukem 203: if checkyesno run_rdist && [ -f /etc/Distfile ]; then
1.1 cgd 204: echo "Running rdist:"
1.20 mikel 205: if [ -d /var/log/rdist ]; then
1.30 enami 206: logf=`date +%Y.%b.%d`
1.20 mikel 207: rdist -f /etc/Distfile 2>&1 | tee /var/log/rdist/$logf
208: else
209: rdist -f /etc/Distfile
210: fi
1.1 cgd 211: fi
212:
1.25 lukem 213: if checkyesno run_security; then
1.36 lukem 214: SECOUT="$DAILYDIR/sec"
215: sh /etc/security 2>&1 > "$SECOUT"
216: if [ ! -s "$SECOUT" ]; then
217: echo "Nothing to report on $date" > "$SECOUT"
1.28 lukem 218: fi
1.36 lukem 219: mail -s "$host daily insecurity output for $date" $MAILTO < "$SECOUT"
1.34 hubertf 220: fi
221:
222: if checkyesno run_skeyaudit; then
223: echo ""
224: echo "Checking remaining s/key OTPs:"
225: skeyaudit
1.31 ad 226: fi
227:
228: if [ -f /etc/daily.local ]; then
229: echo ""
230: echo "Running /etc/daily.local:"
231: . /etc/daily.local
1.18 mrg 232: fi
CVSweb <webmaster@jp.NetBSD.org>