RHEL7: How to get started with anacron.

Share this link


Anacron is a daemon in charge of scheduling tasks on a daily, weekly or monthly basis.

Although anacron is part of the cron package family, the package name is cronie-anacron, unlike cron it doesn’t assume that a machine is running continuously. On the contrary, anacron can run periodic jobs even though the system is regularly powered off. If a scheduled job is not executed because the machine is down or powered off, it will be run some time after the next boot.

Anacron owns an additional, very valuable feature: it makes randomizing the time of the job execution much easier. Through this daemon, all web log rotations don’t start at the same time for example, avoiding network and CPU crisis in virtualized environments.

By default, the crond daemon starts anacron through the /etc/cron.hourly/0anacron cron job. This execution only occurs once per day (verification is done via the /var/spool/anacron/cron.daily file) and only if the machine doesn’t run on battery power.

Anacron stores its configuration in the /etc/anacrontab file.

The anacrontab File

A default anacrontab file appears as follows:

# the maximal random delay added to the base delay of the jobs
# the jobs will be started during the following hours only

#period in days   delay in minutes   job-identifier   command
1                        5           cron.daily       nice run-parts /etc/cron.daily
7                       25           cron.weekly      nice run-parts /etc/cron.weekly
@monthly                45           cron.monthly     nice run-parts /etc/cron.monthly

The anacrontab file is made up of two parts: the environment and the job description sections.

The Environment Section

This part describes the environment in which tasks are executed:

  • SHELL: contains the shell used for running tasks,
  • PATH: defines the path where executables are searched for,
  • MAILTO: provides the mail address where error messages are sent,
  • LOGNAME: if specified, defines the from: part of the mails sent in case of error,
  • RANDOM_DELAY: specifies the maximum number of minutes that
    will be added to the scheduled date of execution (the real delay added will be between 0 and the RANDOM_DELAY value) ; a value of 0 means no random delay added,
  • START_HOURS_RANGE: defines an interval specified in hours when
    scheduled jobs can be run (tasks can’t be started outside this interval).

The Job Description Section

This section can contain several lines, each consisting in four fields:

#period in days   delay in minutes   job-identifier   command
1                        5           cron.daily       nice run-parts /etc/cron.daily
7                       25           cron.weekly      nice run-parts /etc/cron.weekly
@monthly                45           cron.monthly     nice run-parts /etc/cron.monthly

These four fields are:

  • first column: interval in days between two job executions,
  • second column: delay in minutes between two job executions, to avoid running several tasks at the same time,
  • third column: comment added to the anacron logs,
  • fourth column: job to execute.

Tasks are executed through the nice run-parts directory command where

  • nice is the command to execute jobs with a lower priority (by default 10),
  • run-parts is a shell script returning all the files in a given directory.

New Job Scheduling

Scheduling a new task consists in:

  • deciding which periodicity is wanted: daily, weekly or monthly (if you need another periodicity, you will need to create a new directory and add a line in the /etc/anacrontab file),
  • putting the script to execute into the respective directory (/etc/cron.daily, /etc/cron.weekly or /etc/cron.monthly).

Sources: anacron and anacrontab man pages.

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)

Leave a Reply

Upcoming Events (Local Time)

There are no events.

RHCSA7: Task of the day

Allowed time: 5 minutes.
Set up time services pointing to default time servers.

RHCE7: Task of the day

Allowed time: 10 minutes.
Change the SSH process configuration to only listen on the 443 port.

Follow me on Twitter

Poll for favorite RHEL 7 book

What is your favorite RHEL 7 book to prepare RHCSA & RHCE exams?

View Results

Loading ... Loading ...

Poll for most difficult RHCSA 7 topic

What do you think is the most difficult RHCSA 7 topic?

View Results

Loading ... Loading ...

Poll for most difficult RHCE 7 topic

What do you think is the most difficult RHCE 7 topic?

View Results

Loading ... Loading ...