#!/usr/bin/perl # exec.cgi # Run the cron job on all configured servers require './cluster-cron-lib.pl'; &ReadParse(); &ui_print_unbuffered_header(undef, $text{'exec_title'}, ""); # Run on all servers and show output @jobs = &list_cluster_jobs(); ($job) = grep { $_->{'cluster_id'} eq $in{'id'} } @jobs; $job || &error($text{'edit_emissing'}); print &text('exec_cmd', "$job->{'cluster_command'}"),"
\n"; @run = &run_cluster_job($job, \&callback); if (!@run) { print "$text{'exec_nohosts'}
\n"; } $job->{'run'} = [ map { $_->{'host'} } @run ]; # for logging &webmin_log("exec", "cron", $job->{'cluster_user'}, $job); &ui_print_footer("edit.cgi?id=$in{'id'}", $cron::text{'edit_return'}, "", $text{'index_return'}); # callback(ok, &server, message) # Called back to print results for each host the job is run on sub callback { my ($ok, $s, $msg) = @_; my $d = ($s->{'host'} || &get_system_hostname()). ($s->{'desc'} ? " ($s->{'desc'})" : ""); if (!$ok) { # Failed - show error print "",&text('exec_failed', $d, &html_escape($msg)),"
\n"; } else { # Show output if any print "",&text('exec_success', $d),"\n"; if ($ok) { print "
",&html_escape($msg),"
\n";
}
else {
print "
\n"; } } }