Guía del usuario de Remote System Control (RSC) de Sun

Apéndice C Creación de una secuencia de comandos para enviar un mensaje de alerta o un evento de RSC

Existe la posibilidad de incluir el subcomando send_event de rscadm en un archivo o secuencia de comandos para registrar eventos de RSC o enviar mensajes de alerta si se dan determinadas circunstancias. La opción -c se utiliza para enviar el mensaje de alerta.

Este apéndice contiene el ejemplo de un archivo de secuencia de comandos Perl denominado dmon.pl que envía un mensaje de alerta de RSC cuando una partición de un disco supera un determinado porcentaje de su capacidad. Para utilizar esta secuencia de comandos como se pretende, emplee una entrada distinta en la utilidad crontab por cada partición que desee supervisar.

#!/usr/bin/perl

# Supervisión del disco
# USO: dmon <punto_montaje> <porcentaje>
#  Ejemplo: dmon /usr 80


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


if (scalar(@ARGV) != 2)
{
   print STDERR "USO: dmon.pl <punto_montaje> <porcentaje>\n";
   print STDERR " ej. 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 "ALERTA: \"", $mount, "\" está al ", $capacity, 
                      " de su capacidad, enviando notificación\n";
         $nofify_msg = `mount point "`.$mount.'" está al `.
                       $capacity.' de capacidad';
         exec (@notify_cmd, `send_event', `-c', $nofify_msg)
               || die "ERROR: $!\n";
      }
   }
}

if ($found != 1)
{
   print STDERR "ERROR: \"", $ARGV[0], 
                "\" no es un punto de montaje válido\n\n";
}

close(DF);