NAME
Rex::Commands::Cron - Simple Cron Management
DESCRIPTION
With this Module you can manage your cronjobs.
SYNOPSIS
use Rex::Commands::Cron;cron add => "root", {minute => '5',hour => '*',day_of_month => '*',month => '*',day_of_week => '*',command => '/path/to/your/cronjob',};cron list => "root";cron delete => "root", 3;
EXPORTED FUNCTIONS
cron_entry($name, %option)
Manage cron entries.
cron_entry "reload-httpd",ensure => "present",command => "/etc/init.d/httpd restart",minute => "1,5",hour => "11,23",month => "1,5",day_of_week => "1,3",day_of_month => "1,3,5",user => "root",on_change => sub { say "cron added"; };# remove an entrycron_entry "reload-httpd",ensure => "absent",command => "/etc/init.d/httpd restart",minute => "1,5",hour => "11,23",month => "1,5",day_of_week => "1,3",day_of_month => "1,3,5",user => "root",on_change => sub { say "cron removed."; };
cron($action => $user, ...)
With this function you can manage cronjobs.
List cronjobs.
use Rex::Commands::Cron;use Data::Dumper;task "listcron", "server1", sub {my @crons = cron list => "root";print Dumper(\@crons);};
Add a cronjob.
This example will add a cronjob running on minute 1, 5, 19 and 40. Every hour and every day.
use Rex::Commands::Cron;use Data::Dumper;task "addcron", "server1", sub {cron add => "root", {minute => "1,5,19,40",command => '/path/to/your/cronjob',};};
This example will add a cronjob running on the 1st, 3rd and 5th day of January and May, but only when it's a Monday or Wednesday. On those days, the job will run when the hour is 11 or 23, and the minute is 1 or 5 (in other words at 11:01, 11:05, 23:01 and 23:05).
task "addcron", "server1", sub {cron add => "root", {minute => "1,5",hour => "11,23",month => "1,5",day_of_week => "1,3",day_of_month => "1,3,5",command => '/path/to/your/cronjob',};};
Delete a cronjob.
This example will delete the 4th cronjob. Counting starts with zero (0).
task "delcron", "server1", sub {cron delete => "root", 3;};
Managing Environment Variables inside cron.
task "mycron", "server1", sub {cron env => user => add => {MYVAR => "foo",};cron env => user => delete => $index;cron env => user => delete => 1;cron env => user => "list";};