Sun Remote System Control (RSC) Benutzerhandbuch

Anhang C Erstellung eines Skripts zum Senden von Alarmmeldungen und RSC-Ereignissen

Sie können den rscadm-Unterbefehl send_event in ein Skript oder eine Befehlsdatei einbetten, so daß unter bestimmten Umständen RSC-Ereignisse im Protokoll aufgezeichnet oder Alarmmeldungen gesendet werden. Verwenden Sie für das Senden von Alarmen die Option -c.

In diesem Anhang wird als Beispiel die Perl-Skriptdatei namens dmon.pl dargestellt, die dann einen RSC Alarm aussendet, wenn eine bestimmte Plattenpartition einen festgelegten Prozentanteil Ihrer Gesamtkapazität überschreitet. Um dieses Skript sinnvoll einzusetzen, müssen Sie jeder zu überwachenden Plattenpartition einen eigenen Eintrag im Dienstprogramm crontab widmen.

#!/usr/bin/perl

# Disk Monitor
# USAGE: dmon <mount> <percent>
#  e.g.: dmon /usr 80


@notify_cmd = `/usr/platform/sun4u/sbin/rscadm';


if (scalar(@ARGV) != 2)
{
   print STDERR "USAGE: dmon.pl <mount_point> <percentage>\n";
   print STDERR " e.g. dmon.pl /export/home 80\n\n";
   exit;
}

open(DF, "df -k|");
$title = <DF>;

$found = 0;
while ($fields = <DF>)
{
   chop($fields);
   ($fs, $size, $used, $avail, $capacity, $mount) = split(` `, $fields);
   if ($ARGV[0] eq $mount)
   {
      $found = 1;
      if ($capacity > $ARGV[1])
      {
         print STDERR "ALERT: \"", $mount, "\" is at ", $capacity, 
                      " of capacity, sending notification\n";
         $nofify_msg = `mount point "`.$mount.'" is at `.
                       $capacity.' of capacity';
         exec (@notify_cmd, `send_event', `-c', $nofify_msg)
               || die "ERROR: $!\n";
      }
   }
}

if ($found != 1)
{
   print STDERR "ERROR: \"", $ARGV[0], 
                "\" is not a valid mount point\n\n";
}

close(DF);