Armadito-Agent
view release on metacpan or search on metacpan
lib/Armadito/Agent/Scheduler/Cron.pm view on Meta::CPAN
sub trimSpaces {
my ($match) = @_;
$match =~ s/\s+$//ms;
$match =~ s/^\s+//ms;
return $match;
}
sub _getDefaultConf {
my ($self) = @_;
return {
'user' => undef,
'Logfile' => undef
};
}
sub _getConfPath {
my ($self) = @_;
return $self->{agent}->{confdir} . "/scheduler-" . lc( $self->{scheduler}->{name} ) . ".cfg";
}
sub _updateCronTab {
my ($self) = @_;
my $cron_path = "/etc/cron.d/armadito-agent";
my $content = "#\n# Cron configuration for armadito-agent\n#\n";
$content .= "# last modification by armadito-agent : " . nowToISO8601('Local') . "\n\n";
$content .= "PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\n\n";
foreach ( @{ $self->{config}->{tasks} } ) {
$content .= $self->_addCronTask($_);
}
writeFile(
content => $content,
mode => '>',
filepath => $cron_path
);
}
sub _addCronTask {
my ( $self, $task ) = @_;
return
$task->{freq} . "\t"
. $self->{config}->{user}[0] . "\t"
. abs_path($0)
. " -t \""
. $task->{name} . "\" "
. $task->{args} . " " . ">>"
. $self->{config}->{logfile}[0] . ' 2>&1' . "\n";
}
sub run {
my ( $self, %params ) = @_;
$self = $self->SUPER::run(%params);
$self->_loadConf();
$self->_updateCronTab();
return $self;
}
1;
__END__
=head1 NAME
Armadito::Agent::Scheduler::Cron - base class used for task scheduling management
=head1 DESCRIPTION
This task inherits from L<Armadito::Agent::Task::Scheduler>. It allows remote management of agent's crontab configuration.
=head1 FUNCTIONS
=head2 run ( $self, %params )
Run the task.
( run in 3.419 seconds using v1.01-cache-2.11-cpan-140bd7fdf52 )