#!/usr/local/bin/perl ## checkservers.pl [a client to check services] ## version: 0.02 (last modified at 02/03/28) ## Copyright (C) 2002, Ichikawa Hiromitsu (h-i@bigfoot.com) # ############# ####################### check list ################ # list of services $servers{"name"}="server service" $servers{"imap"}="mail.ichikawa.domain imap"; $servers{"pop"}="mail.ichikawa.domain pop"; $servers{"smtp1"}="smtp1.ichikawa.domain smtp"; $servers{"smtp2"}="smtp2.ichikawa.domain smtp"; ################## don't change after this ######## # show the check-list sub showlist { $alllist=join(",",sort keys %servers); # we assume $alllist is not tainted system("perl ./ircnotice.pl \"checklist:$alllist\" &"); print "alllist= $alllist\n"; } # subroutine for cheching services sub checkservers { my $args=shift @_; # we assume $i is not tainted system("perl ./alive.pl $mode $args &"); print "server= $args\n"; } # check args if($#ARGV>=0){ # if some args $mode="ALWAYS"; if($ARGV[0] eq "ALL"){ @list=keys %servers; }else{ if($ARGV[0] eq "list"){ showlist(); exit(); } @list=@ARGV; } }else{ # if no args $mode="ERR"; @list=keys %servers; } # main foreach(sort @list){ $service=$_; next unless(defined $servers{$service}); checkservers($servers{$service}); sleep(1); } exit; ##EOF