.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Rex::Commands::Cron 3pm" .TH Rex::Commands::Cron 3pm "2020-09-18" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Rex::Commands::Cron \- Simple Cron Management .SH "DESCRIPTION" .IX Header "DESCRIPTION" With this Module you can manage your cronjobs. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Rex::Commands::Cron; \& \& cron add => "root", { \& minute => \*(Aq5\*(Aq, \& hour => \*(Aq*\*(Aq, \& day_of_month => \*(Aq*\*(Aq, \& month => \*(Aq*\*(Aq, \& day_of_week => \*(Aq*\*(Aq, \& command => \*(Aq/path/to/your/cronjob\*(Aq, \& }; \& \& cron list => "root"; \& \& cron delete => "root", 3; .Ve .SH "EXPORTED FUNCTIONS" .IX Header "EXPORTED FUNCTIONS" .ie n .SS "cron_entry($name, %option)" .el .SS "cron_entry($name, \f(CW%option\fP)" .IX Subsection "cron_entry($name, %option)" Manage cron entries. .PP .Vb 10 \& 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."; }; .Ve .ie n .SS "cron($action => $user, ...)" .el .SS "cron($action => \f(CW$user\fP, ...)" .IX Subsection "cron($action => $user, ...)" With this function you can manage cronjobs. .PP List cronjobs. .PP .Vb 2 \& use Rex::Commands::Cron; \& use Data::Dumper; \& \& task "listcron", "server1", sub { \& my @crons = cron list => "root"; \& print Dumper(\e@crons); \& }; .Ve .PP Add a cronjob. .PP This example will add a cronjob running on minute 1, 5, 19 and 40. Every hour and every day. .PP .Vb 2 \& use Rex::Commands::Cron; \& use Data::Dumper; \& \& task "addcron", "server1", sub { \& cron add => "root", { \& minute => "1,5,19,40", \& command => \*(Aq/path/to/your/cronjob\*(Aq, \& }; \& }; .Ve .PP 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). .PP .Vb 10 \& 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 => \*(Aq/path/to/your/cronjob\*(Aq, \& }; \& }; .Ve .PP Delete a cronjob. .PP This example will delete the 4th cronjob. Counting starts with zero (0). .PP .Vb 3 \& task "delcron", "server1", sub { \& cron delete => "root", 3; \& }; .Ve .PP Managing Environment Variables inside cron. .PP .Vb 4 \& task "mycron", "server1", sub { \& cron env => user => add => { \& MYVAR => "foo", \& }; \& \& cron env => user => delete => $index; \& cron env => user => delete => 1; \& \& cron env => user => "list"; \& }; .Ve