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