Manuale utente Sun Remote System Control (RSC)

Appendice C Creazione di uno script che invia un messaggio di avviso o un evento RSC

È possibile incorporare il sottocomando rscadm send_event in uno script o file di comandi per registrare un evento RSC o inviare un avviso al verificarsi di determinate condizioni. Per inviare un avviso utilizzare l'opzione -c.

In quest'appendice viene fornito l'esempio di un file di script Perl chiamato dmon.pl, che invia un avviso RSC quando una partizione del disco specificata supera una determinata percentuale della sua capacità. Per utilizzare correttamente questo script, presentare una voce separata alla utility crontab per ogni partizione del disco che si desidera monitorare.

#!/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);