Sun Remote System Control (RSC) Användarhandbok

Bilaga C Skapa ett skript som skickar ett informationsmeddelande eller registrerar en RSC-händelse

Du kan använda delkommandot send_event i rscadm i skript eller kommandofiler för att registrera RSC-händelser eller under vissa förhållanden skicka informationsmeddelanden. Använd alternativet -c för att skicka ett informationsmeddelande.

I detta appendix finns ett exempel på en Perl-skriptfil med namnet dmon.pl. Varje gång en skivpartition används så att en procentuell gräns av dess totala kapacitet överskrids skickar denna skriptfil ett RSC-informationsmeddelande. Om du tänker använda skriptet på detta sätt måste du skicka en separat post till verktyget crontab för varje skivpartition du vill övervaka.

#!/usr/bin/perl

# Skivövervakare
# ANVÄNDNING: dmon <anslutning> <procent>
#  t.ex.: dmon /usr 80


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


if (scalar(@ARGV) != 2)
{
   print STDERR "ANVÄNDNING: dmon.pl <anslutningspunkt> <procent>\n";
   print STDERR " t.ex. 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 "VARNING: \"", $mount, "\" ligger på ", $capacity, 
                      " av kapaciteten, skickar meddelande\n";
         $nofify_msg = `anslutningspunkten "`.$mount.'" används till `.
                       $capacity.' av kapaciteten';
         exec (@notify_cmd, `send_event', `-c', $nofify_msg)
               || die "FEL: $!\n";
      }
   }
}

if ($found != 1)
{
   print STDERR "FEL: \"", $ARGV[0], 
                "\" är inte någon giltig anslutningspunkt\n\n";
}

close(DF);