#!/bin/bash # $Id: portmon,v 1.29 2014/12/30 15:29:12 fulford Exp $ # $Source: /src/merlin/usr/local/etc/RCS/portmon,v $ # $Revision: 1.29 $ # $Date: 2014/12/30 15:29:12 $ # Author C W Fulford. # Copyright 2013,2014 (c) C W Fulford. # Licensed for public use under the LGPL, . # For assistance contact fulford@fulford.net 0709 229 5385 ######################################################################## cmd=`basename $0` ver=`echo "$Revision: 1.29 $" |awk '{print $2}'` date=`echo "$Date: 2014/12/30 15:29:12 $"|awk '{print $2,$3}'` syntax="$cmd [-c <config_file>] [-d] [-l] [-p #] ] [-v] <host_id>|-V" while [ $# -gt 0 ];do case $1 in -c)config=$2;shift 2;; -d)debug=:;set -x;shift;; -l)syslog=:;shift;; -p)port=$2;shift 2;; -v)verbose=:;shift;; -V)echo "$cmd $ver $date";exit ;; *) hostid=$1;shift;; esac done config=${config:-/usr/local/etc/portmon.cf} if [ -r $config ];then eval `sed -ne '/^'$hostid':/,/^$/{/^[ ]/p}' $config` fi port=${port:=110} [ -z "$host" ] && host=$hostid _end () { logger -t $cmd "$cmd port $port on $host stopped `date`" exit 1 } trap "_end" 1 15 nslookup $host >/dev/null ||{ echo "$cmd: can't resolve hostname $host">/dev/null exit 1 } [ "$verbose" ] &&{ echo "$cmd started monitoring $port on $host `date`" } [ "$syslog" ] &&{ logger -t $cmd "started monitoring $port on $host `date`" } while : ;do if nmap -Pn -p$port dougal|grep closed>/dev/null ;then msg="port $port on $host down `date`" [ "$verbose" ] && echo $msg [ "$syslog" ] && logger -t $cmd "$msg" while nmap -Pn -p$port dougal|grep closed >/dev/null ;do [ "$verbose" ]&&{ echo "$cmd: $port still closed" } sleep 180 done msg="port $port on $host recovered `date`" [ "$verbose" ] && echo $msg [ "$syslog" ] && logger -t $cmd "$msg" fi [ "$verbose" ] && echo "port $port on $host up `date`" sleep 300 done ###################################################################### # This program is free software: you can redistribute it and or # # modify it under the terms of the Lesser GNU General Public License # # as published by the Free Software Foundation, either version 3 of # # the License, or (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # A copy of the Lesser GNU General Public License and the GNU # # General Public License is available at # # <http://www.gnu.org/licenses/>. # ######################################################################
Copyright
© 2003-2017
Clifford W Fulford.
Fulford Consulting Ltd.
Regd. Co. 4250037 in England & Wales.
Regd. office 162, Edward Rd. Nottingham NG2 5GF, England, UK.
Related web sites: City Linux | Flare Support | West Bridgford | Fulford Portal | Joan Mary Fulford (Nottingham Writer) | Fulford Gallery | Amharic Interpreter | Arabic Interpreter | Tigrinya Interpreter
The layout and associated style sheets for this page are taken from the World Wide Web Consortium and used here under the W3C software licence.