diff --git a/plugins/other/proftpd_count b/plugins/other/proftpd_count new file mode 100755 index 00000000..44282167 --- /dev/null +++ b/plugins/other/proftpd_count @@ -0,0 +1,64 @@ +#!/bin/bash +# +# Plugin to monitor FTP files. +# based on previous work by jintxo +# +# Parameters understood: +# +# config (required) +# autoconf (optional) +# +# Magic markers (optional - used by munin-config and installation +# scripts): +# +#%# family=auto +#%# capabilities=autoconf + +MAXLABEL=20 + +mktempfile () { +mktemp -t $1 +} + +LOGFILE=${logfile:-/var/log/xferlog} +LOGTAIL=${logtail:-`which logtail`} +STATEFILE=/var/lib/munin/plugin-state/xferlog-count.offset + +if [ "$1" = "autoconf" ]; then + if [ -f "${LOGFILE}" -a -n "${LOGTAIL}" -a -x "${LOGTAIL}" ] ; then + echo yes + exit 0 + else + echo no + exit 1 + fi +fi + +if [ "$1" = "config" ]; then + echo 'graph_title FTP Server Transfers' + echo 'graph_args --base 1000 -l 0' + echo 'graph_vlabel FTP Server Transfers' + echo 'graph_category FTP' + echo 'ftp_get.label Files GET' + echo 'ftp_put.label Files PUT' + exit 0 +fi + + +ftp_get=U +ftp_put=U + +TEMP_FILE=`mktempfile munin-xferlog-count.XXXXXX` + +if [ -n "$TEMP_FILE" -a -f "$TEMP_FILE" ] +then + $LOGTAIL ${LOGFILE} $STATEFILE | grep "[[:space:]][oi][[:space:]]" > ${TEMP_FILE} + ftp_get=`grep "[[:space:]]o[[:space:]]" ${TEMP_FILE} | wc -l` + ftp_put=`grep "[[:space:]]i[[:space:]]" ${TEMP_FILE} | wc -l` + + /bin/rm -f $TEMP_FILE +fi + +echo "ftp_get.value ${ftp_get}" +echo "ftp_put.value ${ftp_put}" +