#!/bin/bash
# $Id: chkftpd,v 1.30 2015/02/27 12:26:47 fulford Exp $
# $Source: /src/merlin/usr/local/etc/RCS/chkftpd,v $
# $Revision: 1.30 $
# Author C W Fulford.
# Copyright 2013 (c) C W Fulford.
# Licensed for public use under the LGPL.
# For assistance contact fulford@fulford.net 0709 229 5385
########################################################################
cmd=`basename $0`
syntax="$cmd [-c <client>] [-d] -e <email rcpt> [-l] [-r <run time(secs)>] [-t] [-T <text number> [-v] hostname | -h"
while [ $# -gt 0 ];do
case $1 in
-c) client=$2;shift 2;;
-d) verbose=0;debug=1;set -x;shift ;;
-e) e_rcpt=$2;shift 2;;
-h) if [ $# -eq 1 ];then
man -8l chkftpd
exit
else
echo "syntax: $syntax">&2
exit
fi;;
-l) log=y;shift ;;
-r) runtime=$2;shift 2;;
-t) test=1;shift ;;
-T) txt=${2}@txtlocal.co.uk;shift 2;;
-v) verbose=0;shift ;;
-*) echo "syntax: $syntax" >&2; exit 1;;
*) if [ $# -eq 1 ];then
host=$1;shift
else
echo $syntax >&2
exit 1
fi;;
esac
done
#set variables
[ -z "$host" ]&& { echo $syntax >&2; exit 1 ;}
client=${client:-"81.133.202.163"}
debug=${debug:-0}
logdir=/var/log/$host
[ -d $logdir ]||{
mkdir -m 775 $logdir ||{
echo "$cmd:Cant't open $logdir" >&2
exit 1
}
}
dumplog=$logdir/tcpdump/tcpdump.`date "+%y%m%d"`
messages=/var/log/messages
problog=$logdir/${cmd}`date "+%m%d"`
e_rcpt=${e_rcpt:-fulford@fulford.net}
rctcpdump="/tmp/rc.tcpdump"
runtime=${runtime:-120}
test=${test:-0}
today=`date "+%b %d"`;[ $debug -gt 0 ]&& echo $today >&2
tmp=/tmp/`basename $cmd`$$
_alert (){
[ $verbose ] && echo "$cmd: ALERT - $msg"
[ -n "$log" ] && logger -t $cmd "$msg"
[ -n "$txt" ] && cc="-c $txt"
echo "see $problog"|
mailx -s "URGENT $msg" \
$cc \
$e_rcpt
}
_mkscript(){
cat >${rctcpdump} <<- EOF
/usr/sbin/tcpdump host $client -w $dumplog >/dev/null 2>&1 &
echo \$!
EOF
}
_problem (){
if [ -n "$client" ];then
escclient=`echo $client|sed -e 's/\./\\\./g'`
fi
[ -f $problog ] || touch $problog
ssh $host "sudo grep -E \"^$today.*proftpd.*$escclient\" $messages"|
grep -e Link -e Refused >$problog
rval=$?
if [ $test -eq 1 ];then
return 0
else
return $rval
fi
}
[ -n "$log" ] && logger -t $cmd "target $host started"
# Has tcpdump been run today
if [ -f $problog -a `cat $problog 2>/dev/null|wc -l` -gt 0 ] ;then
[ $verbose ] &&{
echo "$cmd: problem already logged" >&2
}
exit 1
fi
if _problem ;then
msg="ftpd reporting problems on $host"
_alert
_mkscript
ssh $host "[ -f $rctcpdump ]&& rm $rctcpdump"
[ $verbose ] && echo "$cmd: transfering $rctcpdump to $host"
scp -q $rctcpdump $host:$rctcpdump
ssh $host "chmod 555 $rctcpdump"
[ $verbose ] && echo "$cmd: starting sniffer on $host"
tcppid=`ssh $host "sudo $rctcpdump"`
sleep $runtime
[ $verbose ] && echo "$cmd: stopping sniffer on $host"
ssh $host "sudo kill $tcppid"
else
[ $verbose ] && echo "$cmd: no problems found on dougal"
fi
######################################################################
# 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.