-#!/usr/bin/perl
+#!/usr/bin/env perl
=pod
Examine the Clearadm schedule and perform the tasks required.
+Note that sending the Cleartasks.pl process a sigusr1 will cause it to toggle
+verbose mode.
+
=cut
use strict;
use FindBin;
use Getopt::Long;
+use Sys::Hostname;
use lib "$FindBin::Bin/lib", "$FindBin::Bin/../lib";
my $VERSION = '$Revision: 1.25 $';
($VERSION) = ($VERSION =~ /\$Revision: (.*) /);
-my $logfile = "$Clearadm::CLEAROPTS{CLEARADM_LOGDIR}/$FindBin::Script.log";
+my $logfile = "$Clearadm::CLEAROPTS{CLEARADM_LOGDIR}/$FindBin::Script";
+ $logfile =~ s/\.pl$//;
+ $logfile .= '.' . hostname() . '.log';
+
my $pidfile = "$Clearadm::CLEAROPTS{CLEARADM_RUNDIR}/$FindBin::Script.pid";
my $daemon = 1;
my ($clearadm, $clearexec);
+sub ToggleVerbose() {
+ if (get_verbose) {
+ display 'Turning verbose off';
+ set_verbose 0;
+ } else {
+ display 'Turning verbose on';
+ set_verbose 1;
+ } # if
+} # ToggleVerbose
+
+$SIG{USR1} = \&ToggleVerbose;
+
sub HandleSystemNotCheckingIn (%) {
my (%system) = @_;
} # HandleSystemNotCheckingIn
sub SystemsCheckin () {
- foreach ($clearadm->FindSystem) {
+ for ($clearadm->FindSystem) {
my %system = %$_;
next if $system{active} eq 'false';
$clearadm->ClearNotifications ($system{name})
if $system{notification} and $system{notification} eq 'Heartbeat';
- } # foreach
+ } # for
return;
} # SystemsCheckin
my $when = Today2SQLDatetime;
- foreach (@output) {
+ for (@output) {
# We need to log this output. Write it to STDOUT
display $_;
undef,
$lastid,
);
- } # foreach
+ } # for
return;
} # ProcessLoadAvgErrors
my %system;
- foreach (@output) {
+ for (@output) {
# We need to log this output. Write it to STDOUT
display $_;
$system{$1} = \%fsinfo;
} # if
} # if
- } # foreach
+ } # for
- foreach my $systemName (keys %system) {
+ for my $systemName (keys %system) {
my @fsinfo;
if (ref $system{$systemName} eq 'HASH') {
<ul>
END
- foreach (@fsinfo) {
+ for (@fsinfo) {
my %fsinfo = %{$_};
my $filesystemLink = $Clearadm::CLEAROPTS{CLEARADM_WEBBASE};
$filesystemLink .= "/plot.cgi?type=filesystem&system=$systemName";
$message .= "<li>Filesystem <a href=\"$filesystemLink\">";
$message .= "$fsinfo{filesystem}</a> is $fsinfo{usedPct}% full. Threshold is ";
$message .= "$fsinfo{threshold}%</li>";
- } # foreach
+ } # for
$message .= "</ul>";
undef,
$lastid,
);
- } # foreach
+ } # for
return;
} # ProcessFilesystemErrors
my ($sleep, @workItems) = $clearadm->GetWork;
- foreach (@workItems) {
+ for (@workItems) {
my %scheduledTask = %{$_};
$scheduledTask{system} ||= 'All systems';
if ($scheduledTask{system} =~ /all systems/i) {
- foreach my $system ($clearadm->FindSystem) {
+ for my $system ($clearadm->FindSystem) {
+ next if $$system{active} eq 'false';
+
$scheduledTask{system} = $$system{name};
$sleep = ExecuteTask $sleep, %scheduledTask;
- } # foreach
+ } # for
} else {
$sleep = ExecuteTask $sleep, %scheduledTask;
} # if
- } # foreach
+ } # for
if ($sleep > 0) {
verbose "Sleeping for $sleep seconds";
sleep $sleep;
} # if
-} # foreach
+} # for
=pod