One of the most useful utilities in FreeBSD is cron(8).
This utility runs in the background and regularly checks
/etc/crontab for tasks to execute and
searches
/var/cron/tabs for custom
crontab files. These files store
information about specific functions which
cron is supposed to perform at certain
times.
The cron utility uses two different types
of configuration files, the system crontab and user crontabs.
These formats only differ in the sixth field and later. In the
system crontab, cron will run the command as
the user specified in the sixth field. In a user crontab, all
commands run as the user who created the crontab, so the sixth
field is the last field; this is an important security feature.
The final field is always the command to run.
User crontabs allow individual users to schedule tasks
without the need for root privileges.
Commands in a user's crontab run with the permissions of the
user who owns the crontab.
The root user can have a user crontab
just like any other user. The root user
crontab is separate from /etc/crontab
(the system crontab). Because the system crontab effectively
invokes the specified commands as root there is usually no
need to create a user crontab for
root.
Let us take a look at /etc/crontab,
the system crontab:
#
SHELL=/bin/sh
PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#
#
#minute hour mday month wday who command
#
#
*/5 * * * * root /usr/libexec/atrun 
Like most FreeBSD configuration files, lines that begin
with the | |
First, the environment must be defined. The equals
( | |
This line defines a total of seven fields. Listed here
are the values | |
This last line will define the values discussed above.
This example has a Commands can have any number of flags passed to them; however, commands which extend to multiple lines need to be broken with the backslash “\” continuation character. |
This is the basic setup for every
crontab, although there is one thing
different about this one. Field number six, which specifies
the username, only exists in the system
crontab. This field should be omitted for
individual user crontab files.
Do not use the procedure described here to edit and
install the system crontab,
/etc/crontab. Instead, use an
editor: cron will notice that the file
has changed and immediately begin using the updated version.
See
this FAQ entry for more information.
To install a freshly written user
crontab, first use an editor to create
and save a file in the proper format. Then, specify the file
name with crontab:
% crontab crontab-fileIn this example, crontab-file is the
filename of a crontab that was previously
created.
To list installed crontab files, pass
-l to crontab.
For users who wish to begin their own crontab file from
scratch, without the use of a template, the
crontab -e option is available. This will
invoke the selected editor with an empty file. When the file
is saved, it will be automatically installed by
crontab.
In order to remove a user crontab
completely, use crontab -r.
This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
For questions about FreeBSD, read the
documentation before
contacting <questions@FreeBSD.org>.
For questions about this documentation, e-mail <doc@FreeBSD.org>.