#!/bin/bash # # Plugin to monitor rsyncd. # based on previous work by jintxo # # Parameters understood: # # config (required) # autoconf (optional) # # mktempfile () { mktemp -t $1 } RSYNCD_LOG=${logfile:-/var/log/rsyncd.log} LOGTAIL=${logtail:-`which logtail`} STATEFILE=$MUNIN_PLUGSTATE/rsync-bytes.offset if [ "$1" = "autoconf" ]; then if [ -f "${RSYNCD_LOG}" -a -n "${LOGTAIL}" -a -x "${LOGTAIL}" ] ; then echo yes else echo no fi exit 0 fi if [ "$1" = "config" ]; then echo 'graph_title Rsync Server Bytes' echo 'graph_args --base 1000 -l 0' echo 'graph_order send recv' echo 'graph_category filetransfer' echo 'graph_vlabel Rsync Bytes' echo 'send.label Bytes Send' echo 'recv.label Bytes Recv' exit 0 fi send=U recv=U TEMP_FILE=`mktempfile munin-rsync-bytes.XXXXXX` if [ -n "$TEMP_FILE" -a -f "$TEMP_FILE" ] then $LOGTAIL ${RSYNCD_LOG} $STATEFILE | grep ".* Total .* bytes\." > ${TEMP_FILE} send=`grep ' send .* bytes' ${TEMP_FILE} | awk '{s += $10} END { if ( s ) print s ; else print "0" }'` recv=`grep ' recv .* bytes' ${TEMP_FILE} | awk '{s += $10} END { if ( s ) print s ; else print "0" }'` /bin/rm -f $TEMP_FILE fi echo "send.value ${send}" echo "recv.value ${recv}"