Automating Tasks with Cron and Crontab filesLinux Administration Made EasyPrevChapter 9. Various & Sundry Administrative TasksNextAutomating Tasks with Cron and Crontab filesLike most Linux users, you may find it necessary to schedule
repetitive tasks to be run at a certain time. Such tasks can occur as
frequently as once a minute, to as infrequently as once a year. This
scheduling can be done by using the ``cron'' facilities.The cron facilities as implemented in Linux are fairly similar to
those available in other Unix implementations. However, Red Hat has
adopted a slightly different way of scheduling tasks than is usually done
in other distributions of Linux. Just as in other distributions,
scheduling information is placed in the system
``crontab'' file (locating in the
``/etc/'' directory), using the
following format:minute hour day month year commandYou can specify each time component as an integer number (eg. 1
through 12 for the months January through December), or specify one or
more components as ``*'' characters which will be
treated as wildcards (eg. * in the month component means the command will
run at the given day and time in every month. Here
are some examples:# Mail the system logs at 4:30pm every June 15th.
30 16 15 06 * for x in /var/log/*; do cat ${x} | mail postmaster; done
# Inform the administrator, at midnight, of the changing seasons.
00 00 20 04 * echo 'Woohoo, spring is here!'
00 00 20 06 * echo 'Yeah, summer has arrived, time to hit the beach!'
00 00 20 10 * echo 'Fall has arrived. Get those jackets out. :-('
00 00 20 12 * echo 'Time for 5 months of misery. ;-('Note that commands which produce output to standard out (ie. a
terminal) such as the examples above using ``echo''
will have their output mailed to the ``root'' account.
If you want to avoid this, simply pipe the output to the null device as
follows:00 06 * * * echo 'I bug the system administrator daily at 6:00am!' >/dev/nullIn addition to the standard ``crontab'' entries,
Red Hat adds several directories:/etc/cron.hourly/
/etc/cron.daily/
/etc/cron.weekly/As their names suggest, executable files can be placed in any of
these directories, and will be executed on an hourly, daily, or weekly
basis. This saves a bit of time when setting up frequent tasks; just place
the executable script or program (or a symbolic link to one stores
elsewhere) in the appropriate directory and forget about it.PrevHomeNextStarting and Stopping ProcessesUpUpgrading Linux and Other Applications