Rex::Commands::Cron - Simple Cron Management
With this Module you can manage your cronjobs.
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;
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 entry cron_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."; };
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 only running on the 1st, 3rd and 5th day of a month. But only when these days are monday or wednesday. And only in January and May. To the 11th and 23th hour. And to the 1st and 5th minute.
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. It starts counting by 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"; };
To install Rex, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Rex
CPAN shell
perl -MCPAN -e shell install Rex
For more information on module installation, please visit the detailed CPAN module installation guide.