1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
|
.\" $OpenBSD: daily.8,v 1.28 2020/07/26 13:27:24 rob Exp $
.\"
.\" Copyright (c) 2003 Jason McIntyre <jmc@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: July 26 2020 $
.Dt DAILY 8
.Os
.Sh NAME
.Nm daily , weekly , monthly
.Nd periodic system maintenance
.Sh DESCRIPTION
The three files
.Pa /etc/daily ,
.Pa /etc/weekly ,
and
.Pa /etc/monthly
are shell scripts run on a periodic basis by the clock daemon,
.Xr cron 8 .
They take care of some basic administrative tasks.
Their output, if any, is mailed to root.
.Pp
.Sy Note :
The scripts are all run as part of root's
.Xr crontab 5 .
However, it is strongly suggested that the root mail account
be an alias that forwards messages to a real user or set of users.
Otherwise, root's mail will simply accumulate in
.Pa /var/mail
until the partition holding it runs out of space.
See
.Xr newaliases 8
for further details.
.Pp
These scripts should not be altered.
Local additions should be made to the files
.Pa /etc/daily.local ,
.Pa /etc/weekly.local ,
and
.Pa /etc/monthly.local ,
which will be executed by
.Pa /etc/daily ,
.Pa /etc/weekly ,
and
.Pa /etc/monthly ,
respectively.
The
.Pa *.local
files are executed first, which makes it convenient to do any necessary
cleanup and backup and to define any required shell variables before the
script is run.
.Ss /etc/daily
This script is run daily.
It currently does the following:
.Bl -dash
.It
Runs the script
.Pa /etc/daily.local ,
if it exists.
.It
Removes scratch and junk files from
.Pa /tmp .
.It
Purges accounting records from
.Pa /var/account ,
if they exist.
Processes that were killed due to pledge or memory access violations,
or had file access prevented by unveil,
are reported in the daily mail.
See
.Xr accton 8 ,
.Xr lastcomm 1 ,
and
.Xr sa 8 .
.It
Creates a backup root file system which is updated daily.
This only happens if the following conditions are met:
.Bl -enum -offset indent
.It
The environment variable
.Ev ROOTBACKUP
must be set.
For example, the following can be added to
.Pa /etc/daily.local :
.Pp
.Dl ROOTBACKUP=1
.It
The mount directory
.Pa /altroot
must exist, and there must be an
.Pa /etc/fstab
entry specifying a configured disk device, the file system type
.Sq ffs ,
and
.Sq xx
for the mount options, e.g.
.Pp
.Dl /dev/wd0j /altroot ffs xx 0 0
.El
.It
Checks daemon status.
Lists any daemons which are enabled in
.Xr rc.conf.local 8
but which are not actually running.
.It
Checks disk status.
Reports on the amount of disk used/available via
.Xr df 1 .
Reports on which file systems need to be dumped via
.Xr dump 8 .
.It
Reports networking statistics via
.Xr netstat 1 .
.It
Runs the
.Xr calendar 1
utility unless the environment variable
.Ev CALENDAR
is set to 0 in
.Pa /etc/daily.local
or the host is a
.Xr yp 8
client.
.It
If
.Ev CHECKFILESYSTEMS
is set to 1 in
.Pa /etc/daily.local ,
runs
.Xr fsck 8
with the no-write flag
.Pq Fl n .
.It
If the file
.Pa /etc/Distfile
exists, runs the
.Xr rdist 1
utility.
.It
Runs the system
.Xr security 8
check script.
.El
.Ss /etc/weekly
This script is run weekly.
It currently does the following:
.Bl -dash
.It
Runs the script
.Pa /etc/weekly.local ,
if it exists.
.It
Rebuilds the
.Xr locate 1
database, if there is an existing
.Pa /var/db/locate.database
file.
.It
Rebuilds the
.Xr whatis 1
database(s) via
.Xr makewhatis 8 .
.It
If
.Ev LOGINACCOUNTING
is set to 1 in
.Pa /etc/weekly.local
and the
.Pa /var/log/wtmp
file exists, show individual users' login via the
.Xr ac 8
utility.
.El
.Ss /etc/monthly
This script is run monthly.
It currently does the following:
.Bl -dash
.It
Runs the script
.Pa /etc/monthly.local ,
if it exists.
.El
.Sh ENVIRONMENT
The following variables can be set in
.Pa /etc/daily.local :
.Pp
.Bl -tag -width "CHECKFILESYSTEMS" -compact
.It Ev CALENDAR
If set to 0, do not run
.Xr calendar 1 .
.It Ev CHECKFILESYSTEMS
If set to 1, run
.Xr fsck 8
with the no-write flag.
.It Ev ROOTBACKUP
If set to 1, make a backup of the root file system.
.It Ev VERBOSESTATUS
If set to 0,
.Xr df 1 ,
.Xr dump 8 ,
and
.Xr netstat 1
are skipped.
Consequently, if none of the other commands produce any output,
no mail will be sent to root.
.El
.Pp
The following variables can be set in
.Pa /etc/weekly.local :
.Pp
.Bl -tag -width "CHECKFILESYSTEMS" -compact
.It Ev LOGINACCOUNTING
If set to 1, run
.Xr ac 8
to report login accounting.
.It Ev MAKEWHATISARGS
Arguments for
.Xr makewhatis 8 ;
empty by default.
.El
.Sh FILES
.Bl -tag -width "/var/cron/tabs/root" -compact
.It Pa /etc/daily
Daily maintenance script.
.It Pa /etc/daily.local
Site specific daily maintenance script.
.It Pa /etc/weekly
Weekly maintenance script.
.It Pa /etc/weekly.local
Site specific weekly maintenance script.
.It Pa /etc/monthly
Monthly maintenance script.
.It Pa /etc/monthly.local
Site specific monthly maintenance script.
.It Pa /var/cron/tabs/root
Root
.Xr crontab 5 .
.El
.Sh SEE ALSO
.Xr calendar 1 ,
.Xr crontab 1 ,
.Xr df 1 ,
.Xr locate 1 ,
.Xr netstat 1 ,
.Xr rdist 1 ,
.Xr whatis 1 ,
.Xr crontab 5 ,
.Xr ac 8 ,
.Xr accton 8 ,
.Xr cron 8 ,
.Xr dump 8 ,
.Xr fsck 8 ,
.Xr makewhatis 8 ,
.Xr sa 8 ,
.Xr security 8 ,
.Xr yp 8
.Sh HISTORY
The
.Nm daily , weekly ,
and
.Nm monthly
scripts first appeared in
.Bx 4.3 Reno .
This manual page first appeared in
.Ox 3.4 .
.Sh CAVEATS
If the host machine is not running 24/7, these scripts may never be run.
Adjusting the time fields in the system
.Xr crontab 5
may partially alleviate this problem.
.Pp
Be careful when adding local additions.
Services such as
.Qq www
have their own users, and should be run as such, not as root.
It may be more appropriate to create a separate
.Xr crontab 5
for such services.
|