New Supermarket Announcements!

Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the supermarket mailing list.

Select Supported Platforms


cron (23) Versions 1.7.0

Installs cron

cookbook 'cron', '~> 1.7.0'
cookbook 'cron', '~> 1.7.0'
knife cookbook site install cron
knife cookbook site download cron

cron Cookbook

Build Status Cookbook Version

Installs the cron package and starts the crond service.



  • RHEL family
  • Debian family
  • Solaris family
  • Arch Linux family
  • Gentoo
  • FreeBSD


  • Chef 11+


  • none

Resources and Providers


The cron_d LWRP can be used to manage files in /etc/cron.d. It supports the same interface as Chef's built-in cron resource:

cron_d 'daily-usage-report' do
  minute  0
  hour    23
  command '/srv/app/scripts/daily_report'
  user    'appuser'

Note: FreeBSD does not support cron.d functionality, so it is emulated. cron fragments are created in /etc/cron.d, then they are concatenated together into /etc/crontab. FreeBSD puts some core OS functionality into /etc/crontab, so the original file is copied to /etc/crontab.os_source, and included in the concatenation.

Note: This LWRP does not function on Solaris platforms because they do not support running jobs stored in /etc/cron.d. Any Solaris users are welcome to test the emulate_cron.d functionation that was implemented for FreeBSD. See defaults/attributes.rb for more information.


  • minute, hour, day, month, weekday - schedule your cron job. These correspond exactly to their equivalents in the crontab file. All default to "*".
  • predefined_value - schedule your cron job with one of the special predefined value instead of * * * * * pattern. This correspond to "@reboot", "@yearly", "@annually", "@monthly", "@weekly", "@daily", "@midnight" or "@hourly".
  • command - the command to run. Required.
  • user - the user to run as. Defaults to "root".
  • mailto, path, home, shell - set the corresponding environment variables in the cron.d file. No default.
  • environment - a Hash containing additional arbitrary environment variables under which the cron job will be run (similar to the shell LWRP). No default.
  • mode - the octal mode of the generated crontab file. Defaults to 0644.



The cron_manage definition can be used to manage the /etc/cron.allow and /etc/cron.deny files. Incude this cookbook as dependency to your cookbook and execute the definition as:

The following will add the user mike to the /etc/cron.allow file:

cron_manage 'mike' do
  user   'mike'
  action :allow

The following will add the user john to the /etc/cron.deny file:

cron_manage 'john' do
  user  'john'  #optional, resource name will be used if not specified.
  action :deny  #optional, deny is the default


  • user - username that you want to control (optional).
  • action - :allow or :deny. :deny is the default.

License & Authors

Copyright 2010-2015, Chef Software, Inc.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
See the License for the specific language governing permissions and
limitations under the License.

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

auto-patch Applicable Versions
backup Applicable Versions
backup_lwrp Applicable Versions
bamboo Applicable Versions
boxbilling Applicable Versions
cacti Applicable Versions
chef-client Applicable Versions
clamav Applicable Versions
cloudwatch_monitoring Applicable Versions
cronapt Applicable Versions
ddnsupdate Applicable Versions
elkstack Applicable Versions
etckeeper Applicable Versions
github-enterprise Applicable Versions
gmvault Applicable Versions
magentostack Applicable Versions
ntp_cluster Applicable Versions
ntpdate Applicable Versions
owncloud Applicable Versions
postgresql_lwrp Applicable Versions
rage4dns Applicable Versions
rsyslog Applicable Versions
stash Applicable Versions
subliminal Applicable Versions
system Applicable Versions
thumbor_ng Applicable Versions
zfs_linux Applicable Versions

cron Cookbook CHANGELOG

This file is used to list changes made in each version of the cron cookbook.

v1.7.0 (2015-10-05)

  • Added Arch Linux support
  • Added FreeBSD support, which emulates /etc/cron.d folder support and builds a single /etc/crontab file using the contents of /etc/cron.d
  • Ensure that the cron package is installed on Debian based systems
  • Updated Kitchen CI to use new format and additional platforms
  • Added standard Rubocop config for Chef managed cookbooks and resolved all warnings
  • Added Travis CI testing for foodcritic, rubocop, and chefspec
  • Added Serverspec tests for Kitchen CI
  • Updated Berkfile to the latest format
  • Updated contributing and testing documentation
  • Updated Gemfile dependencies to the latest releases of testing gems
  • Removed pre-1.9 Ruby hash rocket syntax
  • Added and maintainers.toml files
  • Added cookbook version and Travis CI badges to the readme
  • Clarified that the minimum supported Chef release is 11.0
  • Added a Rakefile for easier testing
  • Added chefignore file to limit what files are uploaded to the Chef server
  • Added long_description to the metadata.rb file
  • Added source_url and issues_url to the metadata.rb file for Supermarket
  • Updated Chefspec for 4.X format

v1.6.1 (2014-10-15)

  • [#48] fix typo apry -> apr

v1.6.0 (2014-09-24)

  • [36] Add environment parameter to LWRP
  • [38] Allow user to specify file permissions

v1.5.0 (2014-09-15)

  • [#25] Fixes NameError exception on :delete
  • [#33] Updates README
  • [#40] Fixes local test-kitchen config
  • [#20] Implements a comment for cron_d provider

v1.4.3 (2014-09-09)

  • [#46] Fixes a broken case statement causing cron_d to fail

v1.4.2 (2014-09-08)

  • [#31] Fix up validate_month for Fixnums
  • [#32] Fix upvalidate_dow for Fixnums

v1.4.0 (2014-05-07)

  • [COOK-4628] Adding cron_manage to allow or deny users

v1.3.12 (2014-04-23)

  • [COOK-4550] - cron_d resource sometimes does not print the time in the cron output
  • PR #23 fix validate month and dow
  • Updating test harness, adding specs

v1.3.10 (2014-04-10)

  • [COOK-4507] - restore ability to use @ fields

v1.3.8 (2014-04-10)

  • [COOK-4544] fixing NameError exception on :delete action

v1.3.6 (2014-04-09)

  • [COOK-4337] fixing validations

v1.3.4 (2014-04-09)

  • Reverting [COOK-4337] - cron cookbook does no input validation

v1.3.2 (2014-03-27)

  • [COOK-4337] - cron cookbook does no input validation
  • [COOK-4229] - Support the Gentoo package

v1.3.0 (2014-02-25)

New Feature


  • COOK-3813 - Add metadata for recipes in the cron cookbook



  • COOK-3452 - Add support for raspbian platform




  • [COOK-3058]: simplify conditionals in cron recipe


  • [COOK1829] - cron_d LWRPtemplate should imply cron cookbook by default


  • [COOK-938] - don't default to upgrading cron and fix rhel6 package name
  • [COOK-1622] - add LWRP for cron.d files


  • [COOK-1514] - Cron cookbook manages wrong service name on SuSE


  • [COOK-1124] - add RHEL platform support
FC015: Consider converting definition to a LWRP: /tmp/cook/a22816a5a723b614153b1b52/cron/definitions/manage.rb:1