DAILY(8)                OpenBSD System Manager's Manual               DAILY(8)

NAME
     daily, weekly, monthly - periodic system maintenance

SYNOPSIS
     /etc/daily
     /etc/weekly
     /etc/monthly

DESCRIPTION
     The three files /etc/daily, /etc/weekly, and /etc/monthly are shell
     scripts run on a periodic basis by the clock daemon, cron(8).  They take
     care of some basic administrative tasks.  Their output, if any, is mailed
     to root.

     Note: The scripts are all run as part of root's crontab(5).  However, it
     is strongly suggested that the root mail account be an alias that for-
     wards messages to a real user or set of users.  Otherwise, root's mail
     will simply accumulate in /var/mail until the partition holding it runs
     out of space.  See newaliases(8) for further details.

     These scripts should not be altered.  Local additions should be made to
     the files /etc/daily.local, /etc/weekly.local, and /etc/monthly.local,
     which will be executed by /etc/daily, /etc/weekly, and /etc/monthly, re-
     spectively.  The *.local files are executed first, which makes it conve-
     nient to do any necessary cleanup and backup and to define any required
     shell variables before the script is run.

   /etc/daily
     This script is run daily.  It currently does the following:

     -   Runs the script /etc/daily.local, if it exists.

     -   Removes scratch and junk files from /tmp and /var/tmp.

     -   Removes stale files from the rwhod(8) database.

     -   Removes system messages older than 21 days for the msgs(1) utility.

     -   Purges accounting records from /var/account, if they exist.  See
         accton(8) and sa(8).

     -   Creates a backup root file system which is updated daily.  This only
         happens if the following conditions are met:

               1.   The environment variable ROOTBACKUP must be set.  For ex-
                    ample, the following can be added to /etc/daily.local:

                          ROOTBACKUP=1

               2.   The mount directory /altroot must exist, and there must be
                    an /etc/fstab entry specifying a configured disk device,
                    the file system type `ffs', and `xx' for the mount op-
                    tions, e.g.

                          /dev/wd0j /altroot ffs xx 0 0

     -   Checks disk status.  Reports on the amount of disk used/available via
         df(1).  Reports on which file systems need to be dumped via dump(8).

     -   Reports on the status of the mail queue via mailq(8).

     -   Reports networking statistics via netstat(1).

     -   Gives an uptime for every machine which exists in /var/rwho, via the
         ruptime(1) utility.

     -   Runs the calendar(1) utility unless the environment variable CALENDAR
         is set to 0 in /etc/daily.local or the host is a yp(8) client.

     -   If CHECKFILESYSTEMS is set to 1 in /etc/daily.local, runs fsck(8)
         with the no-write flag (-n).

     -   If the file /etc/Distfile exists, runs the rdist(1) utility.

     -   Runs the system security check script, /etc/security.  See
         security(8) for further details.

   /etc/weekly
     This script is run weekly.  It currently does the following:

     -   Runs the script /etc/weekly.local, if it exists.

     -   Rebuilds the locate(1) database, if there is an existing
         /var/db/locate.database file.

     -   Rebuilds the whatis(1) database(s) via makewhatis(8).

     -   If LOGINACCOUNTING is set to 1 in /etc/weekly.local and the
         /var/log/wtmp file exists, show individual users' login via the ac(8)
         utility.

   /etc/monthly
     This script is run monthly.  It currently does the following:

     -   Runs the script /etc/monthly.local, if it exists.

ENVIRONMENT
     The following variables can be set in /etc/daily.local:

     CALENDAR          If set to 1, run calendar(1).
     CHECKFILESYSTEMS  If set to 1, run fsck(8) with the no-write flag.
     ROOTBACKUP        If set to 1, make a backup of the root file system.
     VERBOSESTATUS     If set to 0, df(1), dump(8), netstat(1), and ruptime(1)
                       are skipped.  Consequently, if none of the other com-
                       mands produce any output, no mail will be sent to root.

     The following variables can be set in /etc/weekly.local:

     LOGINACCOUNTING   If set to 1, run ac(8) to report login accounting.

FILES
     /etc/daily           Daily maintenance script.
     /etc/daily.local     Site specific daily maintenance script.
     /etc/weekly          Weekly maintenance script.
     /etc/weekly.local    Site specific weekly maintenance script.
     /etc/monthly         Monthly maintenance script.
     /etc/monthly.local   Site specific monthly maintenance script.
     /var/cron/tabs/root  Root crontab(5).

SEE ALSO
     calendar(1), crontab(1), df(1), locate(1), msgs(1), netstat(1), rdist(1),
     ruptime(1), rwho(1), whatis(1), crontab(5), ac(8), accton(8), cron(8),
     dump(8), fsck(8), mailq(8), makewhatis(8), sa(8), security(8), yp(8)

HISTORY
     This manual page first appeared in OpenBSD 3.4.

CAVEATS
     If the host machine is not running 24/7, these scripts may never be run.
     Adjusting the time fields in the system crontab(5) may partially allevi-
     ate this problem.

     Be careful when adding local additions.  Services such as "www" have
     their own users, and should be run as such, not as root.  It may be more
     appropriate to create a separate crontab(5) for such services.

OpenBSD 4.7                      May 21, 2009                                3
