Provided by: rex_1.6.0-1_all bug

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 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."; };

   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";
        };