Current File : //usr/share/webmin/cluster-cron/cron.pl |
#!/usr/bin/perl
# cron.pl
# Run a command on multiple servers at once
$no_acl_check++;
require './cluster-cron-lib.pl';
@jobs = &list_cluster_jobs();
($job) = grep { $_->{'cluster_id'} eq $ARGV[0] } @jobs;
$job || die "Job ID $ARGV[0] does not exist!";
$ENV{'SERVER_ROOT'} = $root_directory; # hack to make 'this server' work
&run_cluster_job($job, \&callback);
# callback(error, &server, message)
sub callback
{
local $d = $_[1]->{'desc'} || $_[1]->{'host'};
if (!$_[0]) {
# Failed - show error
print "Failed to run on $d : $_[2]\n\n";
}
else {
# Show output if any
if ($_[2]) {
print "Output from $d ..\n";
print $_[2];
print "\n";
}
}
}