#!/usr/local/bin/perl # # Select which alerts to alert whom on. # # Wrolf Courtney wrolf@wrolf.net # # July 25, 2001 use strict; my $DEBUG=0; sub usage { print STDERR "Usage: $0 node message\n"; exit 1; } usage "Not enough arguments" if $#ARGV+1 < 2; my $node = shift @ARGV; # skip anything just numeric if ($node =~ /^[1-9]\d*\.[1-9]\d*\.[1-9]\d*\.[1-9]\d*$/) { print "node=$node all numeric - not beeping anyone.\n" if $DEBUG>0; exit 0; } # message is remaining arguments my $message = join(' ', @ARGV); usage "No Message" if $message eq ""; print "node=$node message=$message\n" if $DEBUG>0; # Check in /etc/hosts open H, "/etc/hosts" or die "Can't open /etc/hosts: $!\n"; while () { if (/\b$node\b/) { print if $DEBUG>0; exit 0 if /\bnobeep\b/; last; } } # ignore if not in /etc/hosts exit 0 if !defined($_); my $hosts = $_; # ignore if explicitly set for no beep exit 0 if /\bno beep\b/; print "go beep people about $node message=$message\n" if $DEBUG>0; if ($hosts =~ /^10\.2\./ and $hosts =~ /^10\.255\.4\./) { print "beep in-house about $node: $message\n" if $DEBUG>0; system "/usr/local/bin/beep", "paul", "craig", "marc", "claudio", "larry", "$node: $message\n"; } if ($hosts =~ /^10\.2\./ or $node =~ /NOTES/) { print "beep Emily about Notes server $node: $message\n" if $DEBUG>0; system "/usr/local/bin/beep", "paul", "craig", "marc", "claudio", "emily", "larry", "$node: $message\n"; } if ($node =~ /^Katz/ or $node =~ /^Seltel/ or $node =~ /^Heftel/ or $hosts =~ /^172\.22\./) { print "beep Katz about $node: $message\n" if $DEBUG>0; # TBA } if (!($hosts =~ /^10\.2\./)) { print "beep Commtechs about $node: $message\n" if $DEBUG>0; system "/usr/local/bin/beep", "mark", "tech", "$node: $message\n"; } print "beep Wrolf about $node: $message\n" if $DEBUG>0; system "/usr/local/bin/beep", "wrolf", "$node: $message\n"; exit 0;