This module manages cronjobs by placing a file in /etc/cron.d. It defines the following types:
- cron::job - basic job skeleton
- cron::hourly - wrapper for hourly jobs
- cron::daily - wrapper for daily jobs
- cron::weekly - wrapper for weekly jobs
- cron::monthly - wrapper for monthly jobs
Install in your puppet master's modulepath as a directory named 'cron'.
This module can install cron if needed - simply
include cron
The name of the job (quoted part after the opening '{' ) is completely arbitrary. However, there can only be one cron job by that name.
cron::job creates generic jobs in /etc/cron.d. It allows specifying the following parameters:
- ensure
- minute
- hour
- date
- month
- weekday
- user
- command
- environment
Example: This would run the command "mysqldump -u root mydb" as root at 2:40 AM every day:
cron::job{
'mysqlbackup':
minute => '40',
hour => '2',
date => '*',
month => '*',
weekday => '*',
user => 'root',
command => 'mysqldump -u root mydb',
environment => [ 'MAILTO=root', 'PATH="/usr/bin:/bin"' ];
}
cron::hourly creates jobs in /etc/cron.d that run once per hour. It allows specifying the following parameters:
- ensure
- minute
- user
- command
- environment
Example: This would run the command "mysqldump -u root mydb" as root on the 20th minute of every hour:
cron::hourly{
'mysqlbackup_hourly':
minute => '20',
user => 'root',
command => 'mysqldump -u root mydb',
environment => "MAILTO=root\nPATH='/usr/bin:/bin'";
}
cron::daily creates jobs in /etc/cron.d that run once per day. It allows specifying the following parameters:
- ensure
- minute
- hour
- user
- command
- environment
Example: This would run the command "mysqldump -u root mydb" as root at 2:40 AM every day, like the above generic example:
cron::daily{
'mysqlbackup_daily':
minute => '40',
hour => '2',
user => 'root',
command => 'mysqldump -u root mydb';
}
cron::weekly creates jobs in /etc/cron.d that run once per week. It allows specifying the following parameters:
- ensure
- minute
- hour
- weekday
- user
- command
- environment
Example: This would run the command "mysqldump -u root mydb" as root at 4:40 AM every Sunday, like the above generic example:
cron::weekly{
'mysqlbackup_weekly':
minute => '40',
hour => '4',
weekday => '0',
user => 'root',
command => 'mysqldump -u root mydb';
}
cron::monthly creates jobs in /etc/cron.d that run once per month. It allows specifying the following parameters:
- ensure
- minute
- hour
- date
- user
- command
- environment
Example: This would run the command "mysqldump -u root mydb" as root at 3:40 AM the 1st of every month, like the above generic example:
cron::monthly{
'mysqlbackup_monthly':
minute => '40',
hour => '3',
date => '1',
user => 'root',
command => 'mysqldump -u root mydb';
}
- Kevin Goess (@kgoess) - Environment variable support + fixes
- Andy Shinn (@andyshinn) - RedHat derivatives package name fix
- Chris Weyl (@RsrchBoy) - Fixed Puppet 3.2 deprecation warnings
- Mathew Archibald (@mattyindustries) - Fixed file ownership issues
- Nathan Sullivan (@CpuID) - Support for specifying package version
- The Community - Continued improvement of this module via bugs and patches
Add PuppetDoc markup to manifestsAdd a Modulefile, upload to the Puppet Forge